var A = [];
var obj = {
x: A[1],
y: 'hello'
};
A[1] = 1;
console.log(JSON.stringify(obj)); // {"y":"hello"}
当我在 console.log()
中使用 obj
时,A[1]
已经被定义。
如何获得“最新的”obj
,并更新其所有属性?这样当我们执行 console.log()
时我们得到 {"x":1,"y":"hello"}
?
最佳答案
您正在获取最新的对象。如果您希望 x
属性随着其指定值在整个代码运行时发生变化而更新,您需要使用一个对象,因为它只会存储对它的引用,并且随着内存中位置的变化,您将在分配给它的任何地方看到这些变化。数组被视为对象,因此您可以将 A
分配给 x
。
var A = [];
var obj = {
x: A,
y: 'hello'
};
A[1] = 1;
alert(JSON.stringify(obj));
另一个使用对象作为值的例子:
var A = [];
var B = {};
A[1] = B;
var obj = {
x: A[1],
y: 'hello'
};
B.z = 1;
alert(JSON.stringify(obj));
关于javascript - 更新对象属性,最初设置为未定义的数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34770729/