Szukasz eleganckiego rozwiązania wspólnego problemu:coffeescript - zachowanie kontekstu klasy i kontekst zdarzeń
mam klasę, która subskrypcji kilku zdarzeń, chcę handler być metoda instancji w mojej klasie, ale także chcesz uzyskać kontekst zdarzenia (element, w którym wywołano zdarzenie w tym przypadku).
Używam składni linii tłuszczu dla definicji metody, ale nie mam sposobu, aby uzyskać kontekst zdarzenia. Żeby być konkretnym, używam raphael js i gdy subskrybuję element, obiekt zdarzenia nie zawiera elementu, tylko element dom, więc bez kontekstu zdarzenia będę musiał przeszukać element przez jego id raphael wewnątrz papieru, a ja nie lubię tego.
Jaka jest najlepsza praktyka w tym przypadku? Obecnie tworzę nowy obiekt kontekstu przed każdym subskrybowaniem zdarzenia, kontekst zawiera odwołanie do instancji i odwołanie do elementu.
To jest typowe rozwiązanie ... będzie działać, ale w środku jest trochę magii. kontekst zostanie opakowany za pomocą metody obsługi w nowym anonimowym obiekcie dla każdego uruchomienia tego kodu. (jako charakter js) szukam czystszego sposobu, jeśli istnieje. jak powiedziałem, stworzyłem kontekst wewnątrz programu obsługi, aby uniknąć tego problemu. –
@ChenKinnrot to lepiej podać przykłady kodu. Bardzo trudno zrozumieć, czego dokładnie chcesz i co już osiągnąłeś. Jedno, co mogę powiedzieć na pewno, to to, że jeśli chcesz, aby funkcja odwoływała się do jakiegoś obiektu z zewnętrznego zakresu, nieuchronnie będziesz musiał w pewnym momencie zamknąć go w zamknięciu i wtedy funkcja będzie redeclared dla każdego nowego kontekstu. Tu nie ma żadnej magii, tylko javascript. –
nie mógł lepiej w lepszy sposób, dzięki. –