Jak rozumiem, this
nie jest dostępne wewnątrz konstruktora przed wywołaniem super()
.Przekazywanie metody instancji do super z klasami ES6
Mimo to, odnosząc się do metod instancji, musimy przedrostować metodę za pomocą this
. Jak więc przekazać metodę instancji do super()
?
np. W klasie Phaser framework znajduje się klasa Button
. Konstruktor wykonuje wywołania zwrotnego dla click-event:
Constructor
new Button(game, x, y, key, callback, callbackContext, overFrame, outFrame, downFrame, upFrame)
callback - The function to call when this Button is pressed.
callbackContext - The context in which the callback will be called (usually 'this').
chcę moje własne klasy przycisk, który zdefiniować tak:
class MyButton extends Phaser.Button {
constructor(game) {
super(game, game.world.centerX, game.world.centerY, 'buttonImage');
}
clickHandler(button, pointer) {
//handle the clicking
}
}
Więc jak będę przekazać clickHandler
do super
?
this.clickHandler
podaje błąd [Build Error] 'this' is not allowed before super() while parsing file: ....
, a podanie tylko clickHandler
powoduje błąd runtime w postaci Uncaught ReferenceError: clickHandler is not defined
.
Wszelkie sugestie?
miałem ten sam pomysł, ale dał mi nowy błąd wykonania z Phaser: 'Uncaught błąd: Phaser.Signal: słuchacz jest wymagane param z add() i powinien być funkcją. ". – Vegar
Wygląda na to, że pomaga również uzyskać parametry we właściwej kolejności .... – Vegar
To rozwiązanie nie działa, widzę komunikat 'Nie można odczytać właściwości 'wywołania zwrotnego' z niezdefiniowanego' błędu po kliknięciu linku Skompiluj to w babelu – Tony