(function() {
// all JS code here
})();
является выражением немедленного вызова функции ( IIFE ), произносится как "iffy".Некоторые люди также называют их «анонимными, самореализующимися функциями» или просто «самореализующимися функциями».
(function(aParameter) {
alert(aParameter); // will alert "an argument"
})("an argument");
Вот IIFE, которое принимает параметр «aParameter» и передает себе аргумент «аргумент»".
(function($){
alert($(window).jquery); // alert the version of jQuery
})(jQuery);
Это похоже, но" jQuery "(экземпляр объекта jQuery) является аргументом IIFE, и в этом случае jQuery передается как параметр '$'.Таким образом, просто набрав '$', тело IIFE получает доступ к jQuery и его членам.Это общее соглашение jQuery, и люди, пишущие плагины jQuery, обычно поддерживают это соглашение таким образом.
Мало того, что приведенный выше код поддерживает соглашение jQuery, это также гарантирует, что ни вы, ни кто-либо другой не сможетслучайно нарушить эту конвенцию.Например, возьмите следующий код:
var $ = function() {
alert('foo');
}
Этот код превращает '$' во что-то, что определенно не является jQuery.Если кто-то сделал это в другом коде за пределами кода вашего плагина, а затем вы явно не передали jQuery как «$» своему плагину, то вы не сможете использовать «$», как jQuery, как обычно.