Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Кэш глобальных переменных (https://javascript.ru/forum/misc/9646-kehsh-globalnykh-peremennykh.html)

mycoding 29.05.2010 15:55

Кэш глобальных переменных
 
На главной странице javascript.ru нашел
Слайды с докладов RichClient
У одного докладчика подраздел под названием
Кэшируем глобальные переменные

Код следующий

(function(window)
{
var document = window.document,
documentElement = document.documentElement
;
})(window);


А зачем это нужно?
Не первый раз встречаю в различный framework-ах эту запись.

micscr 29.05.2010 16:05

Так делают, чтобы не засорять глобальное пространство имен.
Внутри этой функции создастся свое пространстро имен: переменные объявленные внутри как var станут свойствами объекта вызова этой функции.
Если поназначать там какие то обработчики, то будет - замыкание.

B~Vladi 29.05.2010 17:32

Ещё это сильно помогает при минимизации скриптов. Такие переменные сокращаются, благодаря чему файл становится намного легче. Так же для улучшения сжимаемости сохраняют и имена методов документа или window (локальные сожмутся сами), например:
var getEleById = 'getElementById';
ele1[getEleById]('id1');
ele2[getEleById]('id1');

Таким образом после минимизации будет что-то вроде:
var d = 'getElementById';
c1[d]('id');
c2[d]('id');

Ну и так далее.

Octane 30.05.2010 09:09

А еще доступ к объекту произойдет по ссылке из первого же scope.


Часовой пояс GMT +3, время: 05:12.