使用ES6类将实例方法传递给super

时间:2015-09-11 07:39:14

标签: javascript ecmascript-6 phaser-framework

据我所知,this在调用super( )之前在构造函数中不可用。

但是,在引用实例方法时,我们需要在方法前加this。那么如何将实例方法传递给super( )

e.g。在Phaser framework中,有一个Button类。构造函数对click事件进行回调:

  

构造
  new Button(game, x, y, key, callback, callbackContext, overFrame, outFrame, downFrame, upFrame)

     

回调 - 按下此按钮时调用的功能    callbackContext - 将调用回调的上下文(通常为“this”)。

我想要自己的按钮类,我这样定义:

class MyButton extends Phaser.Button {
    constructor(game) {
        super(game, game.world.centerX, game.world.centerY, 'buttonImage');
    }

    clickHandler(button, pointer) {
       //handle the clicking
    }
} 

那么我如何将clickHandler传递给super

this.clickHandler提供错误[Build Error] 'this' is not allowed before super() while parsing file: ....,仅传递clickHandler会给我一个Uncaught ReferenceError: clickHandler is not defined的运行时错误。

有什么建议吗?

0 个答案:

没有答案