var state = {
item1 : {
text : "hi hi"
}
}
var i = 5;
function test() {
state.item1.text = i;
console.log(state)
i--
if (i >= 0) {
setTimeout(test, 1000);
}
}
test();
有一个非常奇怪的问题,当更新这个 json 对象时,它没有显示正确的值。任何帮助深表感谢。如果我要控制台日志 console.log(state.item1)
它将打印正确的值。但 console.log(state)
显示的值不正确。
Codepen 示例 http://codepen.io/chrisburgin95/pen/xEzvWz
最佳答案
console.log()
不存储对象的副本。相反,当您展开嵌套属性时,它将读取每个属性的当前值。
由于您的代码会改变同一个对象,因此在所有超时触发后展开记录的对象将显示最终值。
关于javascript - 更新 setTimeout 问题中的 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40028491/