Выражение немедленно вызываемой функции (IIFE) в JavaScript-передача jQuery
У меня есть следующий код, который, как я знаю, является IIFE. Однако я никогда не мог понять, что такое (jQuery) и ( $ ). Я знаю, что это как-то связано с передачей ссылки jQuery в IIFE, но не мог бы кто-нибудь объяснить мне ясно цель их? Спасибо за помощь и время : -)
(function ($) {
//code
})(jQuery);
1 ответ:
$
является аргументом функции.jQuery
- это то, что передается в качестве этого аргумента при вызове функции.Подумайте об этом так:
За исключением того, что этот пример создает глобальный символfunction init($) { // code can use $ here as a shortcut for jQuery // even if $ has a different definition globally or isn't defined globally } init(jQuery);
init
, выполнение этого и вашего IIFE идентичны. Оба определяют функцию и немедленно вызывают ее.Преимущество IIFE заключается в том, что новые глобальные символы не определяются. Кроме того, он идентичен по исполнению этому коду.
$
является аргументом для функции.jQuery
- это то, что передается как этот аргумент. Это служит для определения$
Как ярлыка дляjQuery
while внутри этой функции, не затрагивая глобального определения$
. Кроме того, иногда может быть небольшое преимущество в производительности, поскольку символы, определенные локально (либо как локальные переменные, либо как именованные аргументы), могут быть немного быстрее доступны, чем глобальные символы.