在另一个对象的foreach函数中访问Object的“this”?

时间:2014-02-07 10:15:07

标签: javascript foreach this

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

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

}

如何调用Test的this.checkHit函数,并在实体的foreach循环中传递当前值?

当前代码给出“this.checkHit”不是函数。

2 个答案:

答案 0 :(得分:3)

如果你不关心旧的浏览器 - 自从你使用forEach以来就是这种情况 - 你可以使用bind(我也假设你正在做{{1}某处):

new Test()

答案 1 :(得分: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!");
        }

}