Зачем в функцию передаются следующие аргументы: window, document, undefined?

Здравствуйте.

Объясните пожалуйста или дайте ссылку где можно почитать на русском языке о том, зачем в функцию передаются следующие аргументы: window, document, undefined.

(function(window, document, undefined) {
    // что-нибудь происходит и возвращается значение
})(window, document);
  • Вопрос задан
  • 4723 просмотра
Решения вопроса 2
1) Код оборачивается в функцию, чтобы изолировать область видимости переменных
2) переменные window, document, undefined передаются в функцию, чтобы она лучше минифицировалась. После прогона минификатором этот код превратится в
(function(w, d, u) {
    // что-нибудь происходит и возвращается значение
})(window, document);


и все внутренние обращения к window, document и undefined будут заменены на обращение к w, d и u.
Ответ написан
maxaon
@maxaon
undefined пишут, поскольку некоторые сторонние библиотеки могут ее переопределить и получится некорректный код (корректно для ES3, поскольку undefined простая переменная; в ES5 это уже не релевантно) . Используя данный код undefined всегда будет undefined.

Также рекомендуется вставлять ; в начало, поскольку при склеивании и минификации может получится некорректный код.
;(function(window, document, undefined) {
})(window, document);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы