什么是.apply jQuery函数?


Answers:


125

apply调用带有一组参数的函数。它不是jQuery的一部分,而是核心Javascript的一部分。但是,jQuery文档中提到了它:

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

句法:

somefunction.apply(thisObj, [argsArray])

上面的代码调用函数somefunction,将其设置thisthisObj函数的作用域内,并将参数从argsArray作为参数传递给函数。


2
相关的是[ .call()函数 ](mdn.beonex.com/en/Core_JavaScript_1.5_Reference/Global_Objects/…),它也带有this,但是后面跟着一系列单独列出的参数,而不是包含参数的数组。
Peter Ajtai

下面会做什么?$ .when.apply(null,object).done(回调);
Gohel Kiran

@ user1531437那个调用了$.when(object).done(callback);,但是在函数$.whenthis被设置为第一个参数,即null。可以说,应该使用它,$.when.call(null, object).done(callback);因为的第二个参数.apply应该是数组
Luke Madhanga 2014年

与此密切相关的是jQuery代理功能,该功能可用于更改thiscontext变量的值,即Java语言的本机apply可以做到的方式
Red Pea

5

本质上,apply将调用一个函数,并且将上下文设置为将函数应用到的对象。这意味着在函数内,引用this将引用该对象。


对于使用jQuery并获得此答案的任何人,您都需要使用$(this)来获取关联的jQuery对象并可以访问jQuery方法。
R. Schreurs

@ R.Schreurs还需要使用jQuery.fn对象,如下所示:stackoverflow.com/a/27374435/674033
AVProgrammer
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.