0

我对变量范围有疑问。我正在设置事件侦听器(onclick),但处理程序是对象的方法,我需要在处理程序方法中引用该对象。

例子:

var FOO = function () {
 this.clicked = false
};

FOO.prototype.handler = function(e)
{
 this.clicked = true;
}

FOO.prototype.setListeners = function()
{
 $("#but").click(this.handler);
}

var oop = new FOO();
oop.setListeners();

示例工作到this.clicked = true;因为this没有引用oop.

如何将对象的引用传递给处理函数?

4

1 回答 1

1
FOO.prototype.setListeners = function()
{
    var that = this;
    $("#but").click(function(){that.handler();});
}
于 2012-06-13T19:49:12.020 回答