为什么当我将变量分配给对象并更改该变量时,它也会更改对象?例如:
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
没有受到影响吗?
最佳答案
当您将一个对象分配给变量时,它只是引用原始对象,而不是复制。因此所有变量都引用同一个对象。
关于Javascript - [为什么?] 将变量分配给对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24586423/