Sco*_*rup 2 javascript function phaser-framework
我在这里寻找答案,但我找不到任何有用的东西.
基本上我正在制作塔防游戏.每个塔都是动态创建的并且已启用onClick.在onClick监听器中,我试图在类中调用一个方法.
例如,玩家点击塔并可以选择升级
但是,侦听器中的方法是输出未定义的函数.我知道这显然与我的范围有关.但我无法弄清楚我错过了什么?
当然应该是这样的:
someListener: function(){
this.game.doSomeOtherFunction();
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试过console.log并且肯定会调用someListener,但是内部的方法是未定义的.
谢谢,
它无法正常工作,因为this在回调中相应地更改了上下文.你可以这样做:
var self = this;
...
someListener: function(){
self.game.doSomeOtherFunction();
}
...
Run Code Online (Sandbox Code Playgroud)
或者只是你也可以这样做:
someListener: (function () {
var callback = function(){
this.game.doSomeOtherFunction();
}
return callback.bind(this);
}())
Run Code Online (Sandbox Code Playgroud)
我希望它有所帮助.