我认为删除会从特定对象中删除对象属性。在下面的例子中,我将d对象分配给c并从c对象中删除属性。但该财产已从c和d中删除。
var d = {a:1,b:2,c:3};
var c = d;
delete c.c;
console.log(d);
返回Object {a = 1,b = 2}。
答案 0 :(得分:1)
该代码中只有一个对象。对象在Javascript中通过引用分配,因此当您编写c = d
时,c
和d
都会引用完全相同的对象。当修改属性而不是删除它时,这可能更明显:
var d = {a:1,b:2,c:3};
var c = d;
c.c = 0;
console.log(d); Object {a: 1, b: 2, c: 0}
如果需要对象的副本,则需要创建相同的新对象。这里有很多好的答案:What is the most efficient way to deep clone an object in JavaScript?
答案 1 :(得分:0)
在var c = d
之后,c和d指向同一组内存,因此更改为1将影响另一个。如果要复制对象的值,则必须复制它。