2011-11-27 22 views
1

我使用的是window.setInterval,它必須能夠訪問在「類」中定義的方法,但由於setInterval位於與在其中定義的方法不同的作用域中,this解析爲window而不是所需的Game實例。我可以使用哪些代碼來獲得所需的Game.update而不是window.update的行爲?使用本地函數的window.setInterval

(這看起來有點混亂,也許下面的不正確的代碼可以清除了一點東西。)

game = function() { 
    /* ... */ 
    this.update = function() { 
     /* ... */ 
    } 
    this.interval = window.setInterval(this.update /* !!! */, 50); 
} 

回答

4

這可以在沒有JS框架的情況下完成。

var game = function() { 
    this.update = function() { } 
    var that = this; 
    setInterval(function() { 
    that.update.apply(that); 
    },50); 
}