Javascript: вызов свойств объекта несколько раз - PullRequest
0 голосов
/ 18 августа 2011

У меня есть объект:

var object = {
    string1 : 'hello',
    string2 : 'world'
}

И если я хочу вызвать string2 свойство object, это медленнее вызывать его несколько раз, например:

...object.string2...
...object.string2...

или было бы быстрее создать для него ссылку, которая содержит значение параметра, например:

var string2 = object.string2;
...string2...
...string2...

Причина, по которой я думаю, что второй может быть быстрее, потому что сейчас я думаю, что первый всегда сканирует весь объект, чтобы получить значение.

Ответы [ 2 ]

1 голос
/ 18 августа 2011

В вашем случае это не имеет значения. Но для большого объекта с большими кусками прототипа - вы правы. Но вы можете выиграть в скорости, но потерять в функциональности, потому что var a = obje.property копируется по значению, а не по ссылке, и если obj.property будет изменяться динамически, то переменная a будет иметь старое значение obj.property

1 голос
/ 18 августа 2011

Вы правы - второй быстрее, потому что JavaScript не должен каждый раз выполнять поиск по string2.Изменения еще более глубоки в чем-то вроде этого:

(do stuff with foo.bar.baz.qux)

против

var property = foo.bar.baz.qux;
(do stuff with property)

В этом примере foo должен быть отсканирован на наличие бара.Затем бар должен быть отсканирован на наличие баз.И так далее.

В вашем примере выгода будет минимальной, если вы не выполняете большую работу со строкой2, но вы правы, говоря, что это быстрее.

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