Показать сообщение отдельно
  #28 (permalink)  
Старый 15.04.2015, 21:33
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от theKingOfJava
 
Регистрация: 31.03.2015
Сообщений: 113

рони,
То о чем ты говоришь, кстати, это вообще из другой оперы. Это, видимо, связано с вот этим.
o={1: 1, 0: 0, 2: 2, foo: "bar", length: 3}
;[].forEach.call(o, function(x){console.log(x)})

// ::: 0
// ::: 1
// ::: 2

o={1: 1, 0: 0, 2: 2, foo: "bar", length: 3}

for(i=0; i<o.length; i++) console.log(o[i])

// ::: 0
// ::: 1
// ::: 2

То есть, объекты сразу оптимизируются для использования в качестве массива. Неважно, в какой момент ты добавляешь св-во с числовым ключом, оно становиться сразу в соответствующую позицию. Так что, for in в любом случае, перечисляет в соответствии с реальным расположением элемента.

Последний раз редактировалось theKingOfJava, 15.04.2015 в 21:39.
Ответить с цитированием