Usare le funzioni freccia ES6 con l' this
associazione lessicale è fantastico.
Tuttavia, mi sono imbattuto in un problema un momento fa usandolo con un tipico clic di jQuery:
class Game {
foo() {
self = this;
this._pads.on('click', function() {
if (self.go) { $(this).addClass('active'); }
});
}
}
Utilizzando invece una funzione freccia:
class Game {
foo() {
this._pads.on('click', () => {
if (this.go) { $(this).addClass('active'); }
});
}
}
E poi $(this)
viene convertito in chiusura di tipo ES5 (self = this).
È un modo per fare in modo che Traceur ignori "$ (this)" per l'associazione lessicale?
.on()
ha effettivamente unthis
valore utile per te. Per me è molto più chiarothis
riferirsi all'obiettivo dell'evento che dover passare l'evento e trovare l'obiettivo manualmente. Non ho giocato molto con le funzioni freccia, ma sembra che sarebbe fonte di confusione andare avanti e indietro con funzioni anonime.