Кэш глобальных переменных
На главной странице 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, время: 01:55. |