2011-01-19 2 views
9

Я читаю через исходный код JQuery UI (UI-диалога конкретно), я вижу, эта картина повторяется много раз:JQuery UI Design Pattern Вопрос

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

Что такое рассуждение позади этой модели, var self = this, something, something else

ответ

5

Назначение 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; 
+0

«Запятая позволяет писать var только один раз перед определениями переменных». Ах, вот что это. – SooDesuNe

8

это просто кэширование переменных & & obect propertys. Это в целом считается очень хорошей практикой, поскольку поиск объектов связан со стоимостью.

window.href 

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

var myhref = window.href; 
myhref; 

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

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