Manöverkritik: OOP in JS - Eventhandler
bearbeitet von JürgenBHallo Felix,
> Lieber JürgenB,
>
> > ~~~ js
> > 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](http://test.berkemeier.eu/selfwiki/Pointer-Events/MultiPointer.html). 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?
>
> ~~~ js
> 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 gegistriert wird, hängt von der Anwendung ab bzw. ist Geschmacksache.
Gruß
Jürgen