【发布时间】:2014-10-28 09:45:39
【问题描述】:
var Foo = (function(){
function Foo(){
this._s="string";
this.setButton();
};
Foo.prototype.setButton = function(){
document.getElementById('id').addEventListener('click', function(event) {
alert(this._s);
});
};
Foo.prototype.method = function(){
alert(this._s);
};
return Foo;
})();
var fo = new Foo();
fo.method();
我想将一个事件绑定到一个按钮,并执行一个使用“私有”变量的函数,当我单击该按钮时,该函数被正确调用但它看不到变量 this._s(它写“不明确的')。如果我写 fo.method() 字符串会正确打印。 这是jsfiddle:http://jsfiddle.net/wLm1v4La/1/
【问题讨论】:
-
在事件处理程序内部,
this是另一个this。 -
简易解决方案here
标签: javascript class oop