我正在使用 John Resig 的 Simple JavaScript Inheritance 并且遇到了一个问题,我丢失了“this”所指的内容。使用此代码:
var Runner = Class.extend({
init: function() {
this.update();
if(!this.interval) {
this.interval = setInterval(this.update, this.period * 1000);
}
},
stop: function() {
clearInterval(this.interval);
},
update: function() {
this.success()
},
success: function(){
}
});
var SubRunner = Runner.extend({
update: function() {
this._super();
},
success: function(){
alert('sub runner success');
}
});
运行p = new SubRunner()
按我的预期运行,并sub runner success
在第一时间发出警报。第一次运行后,尝试在错误的“this”(窗口)上运行成功函数。
我知道 Prototype 为您提供了一个绑定函数,以便您可以将上下文传递给该函数,但我在这里做类似的事情没有任何运气。有没有人有一个起点来解决这个问题?
谢谢!