(function( $ ){
})( jQuery );
Это самоисполняющаяся анонимная функция, которая использует $
в качестве аргумента, так что вы можете использовать ее ($
) вместо jQuery
внутри этой функции и без страха конфликтовать с другими библиотеками, потому что в других библиотеках тоже $
имеет особое значение. Этот шаблон особенно полезен при написании плагинов jQuery.
Вы можете написать любой символ вместо $
:
(function(j){
// can do something like
j.fn.function_name = function(x){};
})(jQuery);
Здесь j
автоматически догонит jQuery, указанный в конце (jQuery)
. Или вы можете полностью опустить аргумент, но тогда вам придется использовать ключевое слово jQuery
вместо $
, не опасаясь столкновения. Таким образом, $
заключен в аргумент для сокращения, так что вы можете написать $
вместо jQuery
вокруг этой функции.
Если вы даже посмотрите на исходный код jQuery, вы увидите, что все находится между:
(function( window, undefined ) {
// jQuery code
})(window);
То есть, как можно видеть и самозаполняющуюся анонимную функцию с аргументами. Создается аргумент window
(и undefined
), который отображается с глобальным объектом window
внизу (window)
. Это популярный паттерн в наши дни и имеет небольшой прирост скорости, потому что здесь window
будет рассматриваться из аргумента, а не из глобального window
объекта, который показан ниже.
$.fn
- это объект jQuery, в котором вы создаете новую функцию (которая также является объектом) или сам плагин, так что jQuery оборачивает ваш плагин в объект $.fn
и делает его доступным.
Интересно, я ответил на аналогичный вопрос здесь:
Синтаксис функции закрытия JavaScript / jQuery
Вы также можете ознакомиться с этой статьей, чтобы узнать больше о написанных мной функциях:
Javascript Самостоятельно выполняемые функции