在JavaScript中,
我刚发现
var a = {};
a.name = "132";
var b = a;
console.log(b);
b.name = "efg";
console.log(a);//**display "123","efg"**
似乎我可以将objectA分配给objectB,并通过在Javascript中更改objectB来更改objectA的属性。
但这将不工作:
var aa = 1;
var bb = aa;
console.log(bb);
bb = 2;
console.log(aa);//**display "1","1"**
我只是想知道为什么会这样?
答案 0 :(得分:4)
因为当您将对象分配给另一个对象时,它不会被复制,只会给出引用。
在Javascript中,复合数据类型(对象,数组)通过引用复制
var b = a; // Get the reference of a and assign to b
如果您想获取对象副本assign
var b = Object.assign({}, a);