我的变量范围有问题。我正在设置事件监听器(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
。
如何将对象的引用传递给处理函数?
答案 0 :(得分:1)
FOO.prototype.setListeners = function()
{
var that = this;
$("#but").click(function(){that.handler();});
}