производительность доступа к объектам javascript - PullRequest
14 голосов
/ 30 мая 2010

В 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]
}

1 Ответ

15 голосов
/ 30 мая 2010

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

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

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

image

(Access time related to property depth)

See also this performance test:

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