JavaScript · Middle · Frage 55 von 75
Warum schreibt man Event-Handler oft als Klassenfelder mit Arrow Function?
class Counter {
count = 0;
handleClick = () => { this.count++; };
}
button.addEventListener("click", counter.handleClick);- 1Normale Methoden lassen sich gar nicht als Event-Handler nutzen
- 2Arrow Functions halten
thisfest, es übersteht das Weitergeben - 3Klassenfelder laufen schneller als Methoden auf dem Prototyp
Antwort zeigen
Richtige Antwort: Arrow Functions halten this fest, es übersteht das Weitergeben
Erklärung
Eine Prototyp-Methode, die als Callback übergeben wird, verliert this. Der Preis: Jede Instanz bekommt ihre eigene Kopie der Funktion, statt eine auf dem Prototyp zu teilen.