Usare le funzioni freccia ES6 con l' thisassociazione 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 unthisvalore utile per te. Per me è molto più chiarothisriferirsi 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.