Эти две формы эквивалентны. Первый добавляет метод прототипа jQuery через назначение, второй делает это путем вызова $.fn.extend()
, который является тем же методом, что и $.extend().
документация на самом деле немного вводит в заблуждение здесь, так как он говорит:
Если только один аргумент подается в $.extend()
, это означает, что цель аргумент опущен. В этом случае сам объект jQuery имеет значение .
Но что на самом деле происходит нечто подобное:
Если только один аргумент подается в $.extend()
, это означает, что цель аргумент опущен. В этом случае объект $.extend()
применяется к (то есть к объекту, привязанному к this
в пределах метода) - считается объектом.
Так, называя $.extend()
с одним аргументом расширяет $
, и вызов $.fn.extend()
с одним аргументом расширяет $.fn
.
соответствующие части исходного кода говорят:
jQuery.extend = jQuery.fn.extend = function() {
// [...]
// extend jQuery itself if only one argument is passed
if (length === i) {
target = this; // Note: 'this', not 'jQuery'.
--i;
}
// [...]
};
http://api.jquery.com/jQuery.extend/ – edhedges
Привет, edhedges, это один расширяет '$' или 'объект Jquery' метод. например '$ .alertWhileClick()', спасибо. –
@ Джо, что заставляет вас думать, что есть разница между этими двумя формами? –