为什么当我将一个变量赋给一个对象并对该变量进行更改时,它还改变了这些对象?例如:
c = 26;
a = b = c;
a += 1;
a // 27
b // 26
c // 26
但是
z = {};
x = y = z;
x.ab = 5;
x // Object {ab: 5}
y // Object {ab: 5}
z // Object {ab: 5}
为什么(在上面的例子中)存在y.ab
和z.ab
?我只修改了x
而不是y
或z
。第一个例子(带整数)的结果,当我更改a
,b
和c
的值时,没有受到影响?
答案 0 :(得分:2)
将对象分配给变量时,它只是引用原始对象,它不会复制。所以所有变量都指向同一个对象。