Javascript 变量赋值 |
Javascript variable assignment |
这可能是个愚蠢的问题:)
var x = [1, 2, 3];
var y = x; // Value of x is stored in y
y[0] = 5;
alert(x[0]); // returns 5. Why?
x[0] 理想情况下应该是 1,但为什么是 5?
x 包含数组第一个元素的地址,x = y 将其传递给 y。所以 y[0] 与 x[0] 相同。这是因为 x[0] 产生地址为 x+0,y[0] 产生地址为 y+0。由于 y 和 x 相同,所以 y[0] 和 x[0] 指向相同的位置。
这可能是个愚蠢的问题:)
var x = [1, 2, 3];
var y = x; // Value of x is stored in y
y[0] = 5;
alert(x[0]); // returns 5. Why?
x[0] 理想情况下应该是 1,但为什么是 5?
x 包含数组第一个元素的地址,x = y 将其传递给 y。所以 y[0] 与 x[0] 相同。这是因为 x[0] 产生地址为 x+0,y[0] 产生地址为 y+0。由于 y 和 x 相同,所以 y[0] 和 x[0] 指向相同的位置。