JavaScript · Middle · Pytanie 55 z 75
Dlaczego handlery zdarzeń często pisze się jako pola klasy z funkcjami strzałkowymi?
class Counter {
count = 0;
handleClick = () => { this.count++; };
}
button.addEventListener("click", counter.handleClick);- ✓Poprawna odpowiedź: Funkcje strzałkowe przechwytują
thisinstancji, więc metoda działa także przekazana jako callback - 2Pola klasy są szybsze niż metody prototypu
- 3Zwykłych metod nie można używać jako handlerów zdarzeń
Wyjaśnienie
Metoda prototypu przekazana jako callback traci this. Koszt: każda instancja ma własną kopię funkcji zamiast jednej współdzielonej w prototypie.