为什么不能存储jQuery方法?

时间:2014-02-14 10:21:39

标签: javascript jquery browser

似乎你不能用jQuery做到这一点:

f = $("#someElement").text
f("Bar!")

在Chrome上,它给了我这个错误:“TypeError:Object [object global]没有方法'empty'”

为什么?

http://jsfiddle.net/bdN4z/

2 个答案:

答案 0 :(得分:4)

text函数在内部使用this值。

this的值取决于您如何调用该函数。

当你调用$("#someElement").text()时,你在jQuery实例的上下文中调用它。 jQuery实例有一个empty方法。

当您致电f()时,您正在默认对象(window)的上下文中调用它。 window没有empty方法。

答案 1 :(得分:2)

您需要提供方法才能正常运行...

怎么样?

someElement = $("#someElement");
f = someElement.text.bind(someElement);
f("Bar!")