Javascript - [为什么?]为对象分配变量

时间:2014-07-05 12:26:33

标签: javascript variables object variable-assignment

为什么当我将一个变量赋给一个对象并对该变量进行更改时,它还改变了这些对象?例如:

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.abz.ab?我只修改了x而不是yz。第一个例子(带整数)的结果,当我更改abc的值时,没有受到影响?

1 个答案:

答案 0 :(得分:2)

将对象分配给变量时,它只是引用原始对象,它不会复制。所以所有变量都指向同一个对象。