Javascript 在侦听器内调用函数时出现问题(onClick)
我在这里四处寻找答案,但我找不到任何有效的方法 基本上我在做一个塔防游戏。每个塔都是动态创建的,并且启用了onClick。在onClick侦听器中,我试图调用类中的方法 e、 玩家点击塔,可以选择升级 但是,侦听器中的方法正在输出未定义的函数。我知道这显然与我的工作范围有关。但我不知道我错过了什么 当然应该是这样的:Javascript 在侦听器内调用函数时出现问题(onClick),javascript,function,phaser-framework,Javascript,Function,Phaser Framework,我在这里四处寻找答案,但我找不到任何有效的方法 基本上我在做一个塔防游戏。每个塔都是动态创建的,并且启用了onClick。在onClick侦听器中,我试图调用类中的方法 e、 玩家点击塔,可以选择升级 但是,侦听器中的方法正在输出未定义的函数。我知道这显然与我的工作范围有关。但我不知道我错过了什么 当然应该是这样的: someListener: function(){ this.game.doSomeOtherFunction(); } 我尝试了一个console.log,肯定调用了som
someListener: function(){
this.game.doSomeOtherFunction();
}
我尝试了一个console.log,肯定调用了someListener,但是里面的方法没有定义
谢谢,它不起作用,因为
这将在回调中相应地更改上下文。您可以这样做:
var self = this;
...
someListener: function(){
self.game.doSomeOtherFunction();
}
...
或者你也可以这样做:
someListener: (function () {
var callback = function(){
this.game.doSomeOtherFunction();
}
return callback.bind(this);
}())
我希望它能有所帮助。在事件侦听器中,它指的是事件发生的元素,而不是外部范围。你需要一个能在变量中保存你想要的范围的闭包。哇,这很有意义。。。谢谢好的,我来看看闭包。:)