[JS] AddEventListener

0

Witajcie

Sorki że zadaje takie głupie pytanie, ale czy addEventListener mogę użyć żeby np. wykonać pewien kod kiedy zmienna x osiagnie okreslona wartosc czy jednynie wtedy kiedy np. user kliknie lub wykona inna akcje.

Niestety nie znalałem ładnego wytłumaczenia tej funkcji po polsku w google.

0

Przeglądarki nie udostępniają domyślnie zachowania, o które Ci chodzi. Zwykłe zmienne nie mają metod analogicznych do addEventListener i nie można podpiąć do nich zdarzenia.

Ale od czego jest programowanie obiektowe i enkapsulacja? Możesz sam stworzyć sobie obiekt-kontener, czy raczej otoczkę (ang. wrapper). Obiekt przechowywałby jakąś wartość i pozwalał na jej zmianę lub pobranie za pomocą odpowiednich metod (setValue, getValue). Mógłbyś samodzielnie napisać i dodać do obiektu metodę addEventListener, czy może addChangeListener, bo jedynym obsługiwanym zdarzeniem byłaby zmiana (ang. change) wartości. addChangeListener(handler) dodawałaby funkcję handler do wewnętrznej tablicy funkcji przechowywanym w naszym obiekcie-wrapperze. Wywołanie setValue ustawiałoby nową wartość zmiennej przechowywanej w obiekcie i gdyby nowa wartość była inna niż stara, wyzwalane byłyby po kolei wszystkie funkcje z wewnętrznej tablicy funkcji obsługujących zdarzenie change (te dodane przez addChangeListener).

W tych funkcjach mógłbyś sobie dodać warunek, że jeśli wrapper.getValue() === X, to wtedy wykonaj taką i taką akcję.

Czyli: da się to zrobić i to dosłownie podstawy programowania obiektowego, choć tak naprawdę mamy tu do czynienia z dwoma tzw. wzorcami projektowymi (Pełnomocnik, Obserwator). Ale trzeba to zrobić samodzielnie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1