我有以下代码段:
var run = 0;
var obj = {'item1':0,'item2':5,'item3':10};
for (var i in obj){
run++
obj['newItem'+run] = 5;
}
return run;
然后返回3
。但我希望它继续无限,最终导致浏览器崩溃。有没有办法在for循环中更新obj
变量?
答案 0 :(得分:3)
通常,您不应该向正在进行迭代的对象添加属性。
添加到正在进行迭代的对象的属性可以在迭代中被访问或省略。通常,除了当前正在访问的属性之外,最好不要在迭代期间添加,修改或删除对象的属性;无法保证是否会访问添加的属性,是否在修改之前或之后访问修改后的属性,或者删除属性是否会被删除。