JQuery UI Design Pattern Вопрос - PullRequest
       1

JQuery UI Design Pattern Вопрос

9 голосов
/ 19 января 2011

Я читаю исходный код пользовательского интерфейса jQuery (в частности, пользовательский интерфейс) и вижу, что этот шаблон повторяется много раз:

    var self = this,
        options = self.options,
        uiDialog = self.uiDialog;

В чем причина этого паттерна, var self = this, something, something else

Ответы [ 2 ]

8 голосов
/ 20 января 2011

это просто кэширование переменных && obect Propertys. В целом это считается очень хорошей практикой, так как поиск объектов обходится дорого.

window.href

занимает гораздо больше времени, чем

var myhref = window.href;
myhref;

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

Другая причина использования этого шаблона - кэширование DOM node references по тем же причинам. Доступ к DOM - одна из самых дорогих вещей, которые вы можете сделать в Javascript (в браузере). Таким образом, кэшируя ссылки, вы просто улучшаете свой код.

5 голосов
/ 20 января 2011

Назначение self помогает при проблемах с областью действия: значение this может изменяться в скрипте, self всегда будет оставаться ссылкой на экземпляр. Общие другие формы that и base.

Запятая позволяет писать var только один раз перед определениями переменных.

var self = this,
    options = self.options,
    uiDialog = self.uiDialog;

совпадает с

var self = this;
var options = self.options;
var uiDialog = self.uiDialog;
...