可能重复:
结果非常奇怪:
但是 - 如果我在一段时间后执行第二部分(使用setTimeout),并展开第一个对象,我就能得到正确的结果,即:
我认为分享这个很重要,因为我认为一个人在尝试理解他的代码有什么问题时可能会浪费很多时间。如果有人对某个已知漏洞或其他内容有参考资料,请回复此工单。谢谢!
我尝试了以下代码:
var myList = new Object();
var item = new Object();
item.text = "item-1";
myList[3] = item;
console.log(myList);
console.log(myList[3].text);
// Assign another object to the same entry
var item2 = new Object();
item2.text = "item-2";
myList[3] = item2;
console.log(myList);
console.log(myList[3].text);
结果非常奇怪:
* Object
* 3: Object
text: "item-2"
item-1
* Object
* 3: Object
text: "item-2"
item-2
但是 - 如果我在一段时间后执行第二部分(使用setTimeout),并展开第一个对象,我就能得到正确的结果,即:
* Object
* 3: Object
text: "item-1"
item-1
* Object
* 3: Object
text: "item-2"
item-2
我认为分享这个很重要,因为我认为一个人在尝试理解他的代码有什么问题时可能会浪费很多时间。如果有人对某个已知漏洞或其他内容有参考资料,请回复此工单。谢谢!
setTimeout
准确调用它的?我也尝试了一下,并获得了预期的结果。 - jsalonen