JavaScript, проходящий через объект при добавлении элементов - PullRequest
1 голос
/ 11 августа 2010

У меня есть следующий сегмент кода:

var run = 0;
var obj = {'item1':0,'item2':5,'item3':10};
for (var i in obj){
    run++
    obj['newItem'+run] = 5;
}
return run;

и возвращается 3. Но я хочу, чтобы это продолжалось бесконечно и в конечном итоге привело к краху браузера Есть ли способ обновить переменную obj в цикле for?

1 Ответ

3 голосов
/ 11 августа 2010

В общем случае не следует добавлять свойства к объектам, для которых выполняется итерация.

Цитирование Центра разработки Mozilla :

Свойства, добавленные к объекту, для которого выполняется итерация, могут быть посещены или исключены из итерации.Как правило, лучше не добавлять, не изменять и не удалять свойства объекта во время итерации, кроме свойства, которое в данный момент посещается;нет никакой гарантии, будет ли посещено добавленное свойство, будет ли измененное свойство посещено до или после его изменения, или будет ли удаленное свойство посещено до того, как оно будет удалено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...