Показать сообщение отдельно
  #6 (permalink)  
Старый 04.07.2010, 19:04
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Не факт, что length реализовано, как getter. Даже можно сказать, что скорее всего это обычное свойство, потому что Array.prototype.push.call(obj, 1) добавит length к obj во всех браузерах, поэтому обращение к length массива происходит не дольше, чем к любому другому свойству объекта, содержащему числовое значение, которое не пересчитывается каждый раз. Вот с NodeList уже другое дело, это динамическая структура.

Но я люблю гоняться за сверх скоростями и обычно пишу так:
var i = -1, length = array.length;
while (++i < length) {
    array[i]
}

если возможно, так:
var i = array.length;
while (i--) {
    array[i]
}

Последний раз редактировалось Octane, 04.07.2010 в 19:16.
Ответить с цитированием