Почему эти два параметра в источнике jQuery?

Источник jQuery завернут в закрытие, например:

(function(window, undefined) { //awesome jQuery library code in here })(window); 

Я не понимаю, зачем нужен один из этих параметров.

Поскольку window является глобальной переменной, зачем его нужно передавать? Какова цель передачи в глобальном параметре и доступа к нему в закрытии с тем же именем?

Для чего undefined параметр? Почему никакая ценность не передается ему?

Я почти уверен, что на это уже был дан ответ, но:

  • Передача в window a) позволяет сжатию кода изменять имя (т.е. заменять его однобуквенным именем переменной в анонимной функции) и b) гарантирует, что переменная ссылается на объект окна во время определения библиотеки, на всякий случай Любой пользователь переопределяет window в глобальной области после загрузки jQuery.

  • В том числе undefined как аргумент (но не передающий значение), делает то же самое для undefined , позволяя изменять переменные и избегать проблем, если undefined переменная переопределена (yup, Javascript позволяет это).

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

  • Изменение стилей CSS с помощью PHP и jQuery
  • Force загрузить base64 image
  • Сделайте что-нибудь каждые 5 секунд и код, чтобы остановить его. (JQuery)
  • Всплывающее окно для возврата данных родительскому объекту
  • ToggleClass с задержкой
  • Как запустить одновременно две анимации jQuery?
  • Parse json string
  • Javascript / jQuery модальный всплывающий диалог MVC 4 / частичный просмотр рендеринга
  • Jquery.extend (true, , obj) не создает глубокую копию
  • Javascript - Как заставить этот код работать?
  • Javascript Сортировка объекта пары значений ключа на основе значения
  • Давайте будем гением компьютера.