O uso de funções de seta ES6 com this
encadernação lexical é ótimo.
No entanto, deparei-me com um problema atrás, usando-o com uma ligação típica de clique em jQuery:
class Game {
foo() {
self = this;
this._pads.on('click', function() {
if (self.go) { $(this).addClass('active'); }
});
}
}
Usando uma função de seta:
class Game {
foo() {
this._pads.on('click', () => {
if (this.go) { $(this).addClass('active'); }
});
}
}
E, em seguida, $(this)
é convertido em fechamento do tipo ES5 (self = this).
É uma maneira de Traceur ignorar "$ (this)" para ligação lexical?
.on()
realmente tem umthis
valor útil para você. Para mim, é muito mais clarothis
referir-se ao destino do evento do que ter que passar no evento e encontrar o destino manualmente. Eu não brinquei muito com as funções de seta, mas parece que seria confuso ir e voltar com funções anônimas.