【问题标题】:What's the .apply jQuery function?.apply jQuery 函数是什么?
【发布时间】:2011-04-17 08:13:47
【问题描述】:

我在不同的插件和代码中看到了,但我不明白那个功能是什么...在 jQuery api 中没有被引用!

【问题讨论】:

标签: javascript jquery plugins apply


【解决方案1】:

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

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

语法:

somefunction.apply(thisObj, [argsArray])

上面调用函数somefunction,将this设置为函数作用域内的thisObj,并将argsArray的参数作为参数传入函数。

【讨论】:

  • 相关的是 [ .call() 函数 ](mdn.beonex.com/en/Core_JavaScript_1.5_Reference/Global_Objects/…),它也采用this,但后面是一系列单独列出的参数包含参数的数组。
  • 下面会做什么呢? $.when.apply(null, object).done(callback);
  • @user1531437 调用$.when(object).done(callback);,但是在函数$.when中,this被设置为第一个参数,即null。可以说,应该使用$.when.call(null, object).done(callback);,因为.apply 的第二个参数应该是一个数组
  • jQuery proxy function 有很大关系,这对于更改 this 的值(即上下文变量)很有用,就像 Javascript 的原生 apply 可以做的那样
【解决方案2】:

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

【讨论】:

  • 对于任何使用 jQuery 并获得此答案的人,您需要使用 $(this) 来获取关联的 jQuery 对象并可以访问 jQuery 方法。
  • @R.Schreurs 您还需要使用 jQuery.fn 对象,如下所示:stackoverflow.com/a/27374435/674033
猜你喜欢
  • 2012-04-02
  • 2020-01-04
  • 2021-04-13
  • 2014-03-16
  • 2017-04-25
  • 2010-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多