使用上下文调用 bind()

Calling bind() with a context

本文关键字:bind 调用 上下文      更新时间:2023-09-26

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

var someNum = 1;
$(window).bind("test", printNum);
function printNum() {
    alert(this.someNum); // should return 1
}

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

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

此外,从jQuery 1.7开始,on优于bind

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

this.someNum = 1;
$(window).bind("test", printNum);
var parent = this;
function printNum() {
    alert(parent.someNum); // should return 1
}