var obj = { arr: [{ x: 17 }] };
var z = obj.arr;
z = [{ x: 25 }];
console.log(obj.arr[0].x);
控制台打印出17可以有人解释我怎么样? 根据我的知识,z引用了obj.arr并重新初始化z,控制台应该打印出25
答案 0 :(得分:2)
声明
z = [{ x: 25 }];
将替换z的先前值。那时,z已经不再与“obj”有任何关系了。
如果您想通过obj
更改z
,则需要类似
z[0].x = 25;