使用上下文调用bind()

时间:2013-01-24 02:49:40

标签: javascript jquery bind

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

var someNum = 1;

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

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

2 个答案:

答案 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
}