0

我正在一个网站上工作,其中各种对象绑定到 $(window) 上的常见事件。但是,我想在接收触发器的对象的上下文中运行这些函数。(换句话说,保留“this”,这样它在调用函数时仍然引用对象而不是窗口。)我该怎么做?例如,在对象内部:

var someNum = 1;

$(window).bind("test", printNum);

function printNum() {
    alert(this.someNum); // should return 1
}
4

2 回答 2

5

查看$.proxy,您可以使用它来创建始终具有特定上下文的函数:

$(window).bind("test", $.proxy(printNum, this));

此外,on它比bindjQuery 1.7 更受欢迎。

于 2013-01-24T02:51:52.600 回答
0

我一直不清楚 JavaScript 中的对象上下文,但我已经成功地使用了这种方法。笑或欣赏它:

this.someNum = 1;

$(window).bind("test", printNum);

var parent = this;
function printNum() {
    alert(parent.someNum); // should return 1
}
于 2013-01-24T02:53:47.697 回答