Wie ich Dinge verstehe, ist this
nicht innerhalb des Konstruktors verfügbar, bevor super()
aufgerufen wird.Eine Instanzmethode an Super mit ES6 Klassen übergeben
Wenn wir uns auf Instanzmethoden beziehen, müssen wir der Methode jedoch this
voranstellen. Wie ist es möglich, eine Instanzmethode an super()
zu übergeben?
z.B. In der Phaser framework gibt es eine Button
Klasse. Der Konstruktor nimmt einen Rückruf für das Click-Ereignis:
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').
ich meine eigene Taste Klasse will, die ich wie folgt definieren:
class MyButton extends Phaser.Button {
constructor(game) {
super(game, game.world.centerX, game.world.centerY, 'buttonImage');
}
clickHandler(button, pointer) {
//handle the clicking
}
}
So wie ich die clickHandler
zu super
passieren?
this.clickHandler
gibt den Fehler [Build Error] 'this' is not allowed before super() while parsing file: ....
und vorbei nur clickHandler
gibt mir einen Laufzeitfehler von Uncaught ReferenceError: clickHandler is not defined
.
Irgendwelche Vorschläge?
ich die gleiche Idee gehabt, aber das gab mir einen neuen Laufzeitfehler von Phaser: 'Nicht abgefangene Fehler: Phaser.Signal: Hörer ist ein obligatorischer param von add() und sollte eine Funktion sein. – Vegar
Anscheinend hilft es auch, die Parameter in der richtigen Reihenfolge zu bekommen .... – Vegar
Diese Lösung funktioniert nicht, ich sehe 'Eigenschaft 'Rückruf' von undefined Fehler kann nicht lesen, wenn Sie auf den Link klicken Kompilieren Sie es in babel – Tony