JürgenB: Manöverkritik: OOP in JS - Eventhandler

Beitrag lesen

Hallo Felix,

Lieber JürgenB,

pointertarget.addEventListener("pointerdown",  this.down , false);  
...  
down = (event) => this.handledown(event);  
handledown(event) { ... }

da bin ich mir nicht sicher, ob die "lokale Funktion" (oder "nur" eine Closure?) namens down in dieser Klassensyntax nicht einen Fehler wirft. Meiner Erinnerung nach ist innerhalb der Klassensyntax ein implizites "use strict" enthalten, welches vor down ein let|const|var erfordert.

das ist so im Einsatz. Ein let|const|var vor dem down würde einen Fehler werfen. Variablen dürfen in Klassen nur innerhalb von Methoden deklariert werden.

Warum nicht gleich so?

pointertarget.addEventListener(
  "pointerdown",
  event => this.handledown(event),
  false
);

so kann man den Eventhandler nicht entfernen. Und ob der Handler innerhalb der Klasse oder außerhalb registriert wird, hängt von der Anwendung ab bzw. ist Geschmacksache.

Gruß
Jürgen