Кэш глобальных переменных
На главной странице javascript.ru нашел
Слайды с докладов RichClient У одного докладчика подраздел под названием Кэшируем глобальные переменные Код следующий (function(window) { var document = window.document, documentElement = document.documentElement ; })(window); А зачем это нужно? Не первый раз встречаю в различный framework-ах эту запись. |
Так делают, чтобы не засорять глобальное пространство имен.
Внутри этой функции создастся свое пространстро имен: переменные объявленные внутри как var станут свойствами объекта вызова этой функции. Если поназначать там какие то обработчики, то будет - замыкание. |
Ещё это сильно помогает при минимизации скриптов. Такие переменные сокращаются, благодаря чему файл становится намного легче. Так же для улучшения сжимаемости сохраняют и имена методов документа или window (локальные сожмутся сами), например:
var getEleById = 'getElementById'; ele1[getEleById]('id1'); ele2[getEleById]('id1'); Таким образом после минимизации будет что-то вроде: var d = 'getElementById'; c1[d]('id'); c2[d]('id'); Ну и так далее. |
А еще доступ к объекту произойдет по ссылке из первого же scope.
|
Часовой пояс GMT +3, время: 05:12. |