为什么我可以将objectA分配给objectB并通过更改Javascript中的objectB来更改objectA
Why I can assign objectA to objectB and change objectA's property by changing objectB in Javascript?
在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"**
我只是想知道为什么会发生这种情况?
JSFiddle https://jsfiddle.net/Pencil_Case/2wxxmgvx/3/
因为当你将一个对象赋值给另一个对象时,它不会被复制,只会给出引用。
在Javascript中,复合数据类型(Object, array)通过引用 复制var b = a; // Get the reference of a and assign to b
如果您想获得对象的副本,请使用assign
var b = Object.assign({}, a);