我试图在另一个实例方法的事件处理程序中调用实例方法但我得到的函数未定义,我假设这是因为在事件处理程序中“this”指的是DOM元素而不是实例:
function MyObject(something) {
this.something = something;
this.value = 'abc';
}
MyObject.prototype.Init = function() {
$(this.something).click(function() {
this.DoSomething();
});
};
MyObject.prototype.DoSomething = function() {
//do something
};
有没有办法让“this”指向实例?
答案 0 :(得分:3)
定义另一个名称不是this
的变量,并为你在内部函数中指定你想要引用的上下文:
MyObject.prototype.Init = function() {
var scope = this;
$(this.something).click(function() {
scope.DoSomething();
});
};