Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用jquery或javascript覆盖值?_Javascript_Jquery - Fatal编程技术网

如何使用jquery或javascript覆盖值?

如何使用jquery或javascript覆盖值?,javascript,jquery,Javascript,Jquery,我想重写值,这样只更改现有变量,而不添加任何附加变量 例如: rectangle : { "width" : 0, "height" : 0, "r" : 0, "stroke" : "#000000", "stroke-width" : 1, "stroke-dasharray" : "No", "fill-opacity" : 1.0, "stroke-op

我想重写值,这样只更改现有变量,而不添加任何附加变量

例如:

    rectangle : {
        "width" : 0,
        "height" : 0,
        "r" : 0,
        "stroke" : "#000000",
        "stroke-width" : 1,
        "stroke-dasharray" : "No",
        "fill-opacity" : 1.0,
        "stroke-opacity" : 1.0,
        "rotation" : 0,
        "transform" : ""
    }
需要过度劳累 结果应为:(不应附加字体) 如果要使用
\u newProperties
的属性更新
矩形的现有属性,则必须使用
for…in
循环:

for (var prop in _newProperties) {
    if (rectangle.hasOwnProperty(prop)) {
        rectangle[prop] = _newProperties[prop];
    }
}

rectangle.hasOwnProperty
确保
rectangle
实际具有该属性,并检查它是否是真正的
rectangle
属性,而不是原型链中较高的属性。

使用
hasOwnProperty
函数相对简单:

for(var key in _newProperties) {
    if(rectangle.hasOwnProperty(key)) {
        rectangle[key] = _newProperties[key];
    }
}

这将遍历
\u newProperties
中的键,并将值写入
矩形
如果
矩形
具有相同名称的属性。请注意,通过原型继承的属性将被忽略,因为
hasOwnProperty
将为它们返回
false

Great。写一些代码。为什么我会得到否定点?我可以使用jquery extend,但它会添加我不想要的新值。@user1595858:您唯一的选择是迭代
\u newProperties
中的属性,检查每个属性的名称是否为
font-
,如果不是以这个名字开头的话,就把它加进去。我以为jquery有某种方法可以做到这一点,所以我把这个question@Blender不,我认为这不是OP想要的行为。我认为OP正在寻找类似于
$.extend()
的东西,但不想将新属性从第二个对象添加到第一个对象。更多的是一个“交叉点”而不是一个“联合点”(尽管这仍然不精确)。
for (var prop in _newProperties) {
    if (rectangle.hasOwnProperty(prop)) {
        rectangle[prop] = _newProperties[prop];
    }
}
for(var key in _newProperties) {
    if(rectangle.hasOwnProperty(key)) {
        rectangle[key] = _newProperties[key];
    }
}