Подтвердить что ты не робот

Значения объявления анонимной функции jquery

Являются ли следующие предположения точными?

1) немедленно выполнить

(function(){
})();

2) выполнить на готовом документе

$(document).ready(function(){
});

3) сокращение для готового документа

$(function(){
});

4) альтернативная стенограмма для документа, готового для избежания перекрестных конфликтов script

(function($) {
})(jQuery);
4b9b3361

Ответ 1

Да, ваши определения верны, для первых 3:)

Хотя, если вам не нужна закрытие, инструкция будет выполняться немедленно, нет причин для ее переноса, как # 1 (есть, конечно, много действительных времен, когда вам нужно закрытие, просто заметив, если вы этого не сделаете... излишний).

Число 4, однако, неверно, (function($) { })(jQuery); не привязано к какому-либо событию, это просто закрытие, так что $ === jQuery внутри него, поэтому вы можете использовать ярлык $:

(function($) { 
  //You may use $ here instead of jQuery and it'll work...even if $ means
  //something else outside of this closure, another library shortcut for example
})(jQuery);

Ответ 2

Здесь # 4, который вы искали:

jQuery(function ($) {
});

Он будет запущен на document.ready, в пространстве имен и с jQuery, определенным как $.