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引用一個可變對象。 –