Является ли следующий сокращение для $(document).ready
?
(function($){
//some code
})(jQuery);
Я вижу, что этот шаблон часто используется, но я не могу найти ссылку на него. Если это условное обозначение $(document).ready()
, есть ли какая-то конкретная причина, по которой он может не работать? В моих тестах он всегда срабатывает перед готовым событием.
javascript
jquery
document-ready
shorthand
Марк Браун
источник
источник
var somevar;
), не изменит содержимое переменных с тем же именем вне функцииОтветы:
Сокращение для
$(document).ready(handler)
IS$(handler)
(гдеhandler
есть функция). Смотрите здесь .Код в вашем вопросе не имеет ничего общего с
.ready()
. Скорее, это выражение для немедленного вызова функции (IIFE) с объектом jQuery в качестве аргумента. Его цель состоит в том, чтобы ограничить область действия, по крайней мере,$
переменной до ее собственного блока, чтобы она не вызывала конфликтов. Обычно вы видите шаблон, используемый плагинами jQuery для этого$ == jQuery
.источник
iife
или переходите к известной записи в блоге Cowboy Alman . Подробнее ... Sheesh.Сокращение:
источник
$
.jQuery(function($, undefined) {});
$(document).ready(function(){ });
$
бесплатно в качестве первого аргумента.Правильное сокращение это:
Код, который вы разместили ...
... создает анонимную функцию и выполняет ее немедленно
jQuery
, передавая в качестве аргумента arg$
. Все, что он делает, - это берет код внутри функции и выполняет его как обычно, поскольку$
он уже является псевдонимом дляjQuery
. : Dисточник
Это не сокращение для
$(document).ready()
.Код, который вы разместили, упаковывает внутренний код и делает jQuery доступным,
$
не загрязняя глобальное пространство имен. Это можно использовать, когда вы хотите использовать как прототип, так и jQuery на одной странице.Документально здесь: http://learn.jquery.com/using-jquery-core/avoid-conflicts-other-libraries/#use-an-immediately-invoked-function-expression
источник
Эти конкретные строки являются обычной оболочкой для плагинов jQuery:
«... чтобы убедиться, что ваш плагин не конфликтует с другими библиотеками, которые могут использовать знак доллара, лучше всего передавать jQuery самовыполняющейся функции (замыкание), которая отображает его на знак доллара, чтобы он мог» не может быть перезаписано другой библиотекой в объеме ее выполнения. "
С http://docs.jquery.com/Plugins/Authoring
источник
Многофункциональная безопасная стенограмма для готовых:
Это происходит потому , что Jquery не только структура , которая использует
$
иundefined
переменныеисточник
(function($){ ... })(jQuery);
ready
, вместо этого он вызывается немедленноЕще более короткий вариант - использовать
где
$
обозначает jQuery и()=>{}
является так называемой «функцией стрелки», которая наследуетсяthis
от замыкания. (Так что уthis
вас, вероятно, будетwindow
вместоdocument
.)источник
Как насчет этого?
источник