0
为什么当我将一个变量赋给一个对象并对该变量进行更改时,它也改变了这些对象?例如:Javascript - [为什么?]为一个对象指定一个变量
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
不受影响?
可变性是这里的关键字。 – thefourtheye
不是JS专家,但Java的解释是你不是在处理对象,而是在处理对象的引用,所以'x''y'和'z'都指向已经创建的唯一对象 – SJuan76
Short回答:因为a,b和c引用一个不可变的标量值,而x,y和z引用一个可变对象。 –