ricerca di soluzione elegante a un problema comune:Coffee sceneggiatura - preservare il contesto di classe e il contesto dell'evento
ho avuto una classe che abbonarsi a pochi eventi, voglio che il gestore sia un metodo di istanza dentro la mia classe, ma voglio anche ottenere il contesto dell'evento (l'elemento su cui l'evento è stato attivato per questo caso).
Sto usando la sintassi della linea grassa per la definizione del metodo ma non ho avuto modo di ottenere il contesto dell'evento. Per essere concreto sto usando raphael js e quando sottoscrivo un elemento l'oggetto evento non contiene l'elemento, solo l'elemento dom quindi senza il contesto dell'evento dovrò cercare l'elemento con il suo raphael id all'interno del foglio, e io non mi piace
Qual è la migliore pratica in questo caso? Attualmente sto creando un nuovo oggetto di contesto prima di ogni sottoscrizione all'evento, il contesto contiene il riferimento all'istanza e il riferimento all'elemento.
Questa è la soluzione comune ... funzionerà ma ha ottenuto un po 'di magia all'interno. il contesto verrà avvolto con il metodo del gestore in un nuovo oggetto anonimo per ogni volta che verrà eseguito questo codice. (come la natura di js) sto cercando un modo più pulito se esiste. come ho detto ho creato il contesto all'interno del gestore per evitare questo problema. –
@ChenKinnrot, è meglio fornire alcuni esempi di codice. È molto difficile capire cosa vuoi esattamente e cosa hai già realizzato. Una cosa che posso affermare con certezza è che se si desidera che la funzione faccia riferimento ad un oggetto dall'ambito esterno, sarà inevitabilmente necessario avvolgerla in una fase di chiusura in una fase e poi fare in modo che la funzione venga ridichiarata per ogni nuovo contesto. Non c'è magia qui, solo javascript. –
non potrebbe perfezionare un modo migliore, grazie. –