2010-09-26 2 views
88

Я вижу это в разных плагинах и кодах, но я не понимаю, что это за функция ... В jQuery api не ссылается!Что такое функция .apply jQuery?

+20

Это не в ссылке jQuery, так как это [** встроенная функция Javascript **] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply). –

ответ

119

apply вызывает функцию с набором аргументов. Это не часть jQuery, это часть основного Javascript. Однако, есть упоминание о нем в документации JQuery:

http://docs.jquery.com/Types#Context.2C_Call_and_Apply

Синтаксис:

somefunction.apply(thisObj, [argsArray]) 

выше вызывает функцию somefunction, установив this в thisObj в пределах области функции, и Передает аргументы от argsArray в качестве аргументов функции.

+2

Связанная функция [**. Call() **] (http://mdn.beonex.com/en/Core_JavaScript_1.5_Reference/Global_Objects/Function/call), которая также принимает значение 'this', но оно выполняется серией отдельно перечисленных аргументов вместо массива, содержащего аргументы. –

+0

что будет делать ниже? $ .when.apply (null, object) .done (callback); – user1531437

+0

@ user1531437 Это вызывает $ .when (object) .done (callback); ', но в функции' $ .when', 'this' устанавливается первый параметр, т. Е.' Null'. Возможно, нужно использовать '$ .when.call (null, object) .done (callback);' потому что второй параметр '.apply' должен быть массивом –

5

По существу, apply будет вызывать функцию с контекстом, установленным для объекта, к которому применяется данная функция. Это означает, что в функции, ссылающейся на this, будет ссылаться на этот объект.

+0

Для тех, кто работает с jQuery и прибывает в этот ответ вам нужно будет использовать '$ (this)' для получения связанного объекта jQuery и доступа к методам jQuery. –

+0

@ R.Schreurs также вам нужно использовать объект jQuery.fn, как показано здесь: http://stackoverflow.com/a/27374435/674033 – AVProgrammer

Смежные вопросы