Подтвердить что ты не робот

Производительность доступа к объекту javascript

В Javascript, когда вы получаете свойство объекта, существует ли штраф за производительность для получения всего объекта, а не только для получения свойства этого объекта?

Также имейте в виду, что я не говорю о доступе DOM, это простые простые объекты Javascript.

Например:

Есть ли разница в производительности между следующим кодом:

Предполагается, что он быстрее, но не уверен:

var length = some.object[key].length;

if(length === condition){
  // Do something that doesnt need anything inside of some.object[key]
}
else{
  var object = some.object[key];
  // Do something that requires stuff inside of some.object[key]
}

Я думаю, что это будет медленнее, но не обязательно, если это имеет значение.

var object = some.object[key];

if(object.length === condition){
  // Do something that doesnt need anything inside of some.object[key]
}
else{
  // Do something that requires stuff inside of some.object[key]
}
4b9b3361

Ответ 1

Да, есть штраф за производительность.

Чем глубже свойство вложенное, тем больше времени потребуется для поиска свойств.

Отметьте свободную главу книги Высокопроизводительный JavaScript, на странице 31 речь идет конкретно о вложенных членах.

propertyDepth.png

(Время доступа, связанное с глубиной свойства)

См. также этот тест производительности: