我想将onclick事件监听器分配给一个类中的对象 然后从创建该onclick的实例中获取一些变量
function myclass() {
this.myvar;
this.myfunc = function()
{
alert(this.myvar);
document.onmousedown = this.mouseDown;
}
this.mouseDown = function(e)
{
alert(this.myvar); //does not work of course
//how could I access myvar from current myclass instance
}
}
var myclass_instance = new myclass();
myclass_instance.myvar = 'value'
myclass_instance.myfunc();
答案 0 :(得分:1)
this
事件中的 mouseDown
不是该实例的this
。
请尝试此:
function myclass() {
var _this = this;
this.myvar;
this.myfunc = function()
{
alert(this.myvar);
document.onmousedown = this.mouseDown;
}
this.mouseDown = function(e)
{
alert(_this.myvar); //<<<<
}
}
答案 1 :(得分:1)
作为@Neal的替代品,你可以绑定它。
document.onmousedown = this.mouseDown.bind(this);