我正在使用John Resig的Simple JavaScript Inheritance,並遇到一個問題,我失去了'this'引用的內容。使用此代碼:Javascript繼承和丟失'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爲您提供了一個綁定函數,以便您可以將上下文傳遞給該函數,但我在此處做類似的事情時沒有任何運氣。有沒有人有一個起點來弄清楚這一點?
謝謝!
它看起來像我忽略了setTimeout,並且過於強烈地關注成功函數。感謝或幫助大家! – 2012-08-07 21:06:40