2014-02-07 54 views
1
function Test(){ 
    this.update = function(entity){ 
       entity.forEach(function(enemy) { 
        this.checkHit(enemy); 
       }); 
     } 

     this.checkHit = function(entity){ 
       console.log("worked!"); 
     } 

} 

我該如何調用Test的this.checkHit函數,並將其當前值傳遞給實體的foreach循環?在另一個對象的foreach函數中訪問對象的「this」?

當前的代碼給出「this.checkHit」不是一個函數。

+4

'var that = this;'.......... – zerkms

+0

檢查'console.log(this)'並按@zerkms建議進行更改 –

回答

3

如果你不關心舊的瀏覽器 - 這似乎是由於您使用的forEach是這樣 - 你可以使用bind(也是我假設你正在做new Test()某處) :

entity.forEach(function (enemy) { 
    this.checkHit(enemy); 
}.bind(this)); 
0

只需將this置於正常變量中。 self常用

function Test(){ 
    var self = this; 
    this.update = function(entity){ 
       entity.forEach(function(enemy) { 
        self.checkHit(enemy); 
       }); 
     } 

     this.checkHit = function(entity){ 
       console.log("worked!"); 
     } 

} 
相關問題