Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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
Javascript 创建新对象时,为什么要更新旧对象?_Javascript_Object_Scoping - Fatal编程技术网

Javascript 创建新对象时,为什么要更新旧对象?

Javascript 创建新对象时,为什么要更新旧对象?,javascript,object,scoping,Javascript,Object,Scoping,当我从现有对象创建一个新对象,然后附加一个新属性时,为什么它会更新先前的属性 他们的解决方案是否不需要太多修改我的代码 变量项和数据只是指向同一对象的引用。打电话 var item = data[0]; 您不是在复制对象,而是在对象上创建一个新引用,该引用使用数据[0]寻址。所以 item.added = 4; 将更改bot Vraibles指向的对象 这里 是一些关于如何在javascript中复制对象的详细信息。因为您得到的只是对原始对象的引用,而不是副本。因此,如果更新此引用,则隐

当我从现有对象创建一个新对象,然后附加一个新属性时,为什么它会更新先前的属性

他们的解决方案是否不需要太多修改我的代码


变量数据只是指向同一对象的引用。打电话

var item = data[0];
您不是在复制对象,而是在对象上创建一个新引用,该引用使用数据[0]寻址。所以

item.added = 4;
将更改bot Vraibles指向的对象

这里

是一些关于如何在javascript中复制对象的详细信息。

因为您得到的只是对原始对象的引用,而不是副本。因此,如果更新此引用,则隐式更新原始对象

您可以使用以下方法轻松创建副本:


这又是一个参照复制的问题…@sp00m你能解释一下我是如何直接复制而不是参照它的吗?你不是唯一一个在找这份工作的人,
;)谢谢,这是解决我问题的最简单的方法。如果可以的话,我会把它标记为已被接受。干杯:)
item.added = 4;
var item = $.extend({}, data[0]);