我正在开发一个网站,其中各种对象绑定到$(窗口)上的常见事件。但是,我想在接收触发器的对象的上下文中运行这些函数。 (换句话说,保留“this”所以它在调用函数时仍然引用对象而不是窗口。)我该怎么做?例如,在对象内:
var someNum = 1;
$(window).bind("test", printNum);
function printNum() {
alert(this.someNum); // should return 1
}
答案 0 :(得分:5)
查看$.proxy
,您可以使用它创建一个始终具有特定上下文的函数:
$(window).bind("test", $.proxy(printNum, this));
此外,从jQuery 1.7起,on
优先于bind
。
答案 1 :(得分:0)
我从未清楚JavaScript中的对象上下文,但我已成功使用此方法。笑或欣赏它:
this.someNum = 1;
$(window).bind("test", printNum);
var parent = this;
function printNum() {
alert(parent.someNum); // should return 1
}