L'utilisation des fonctions fléchées ES6 avec la this
liaison lexicale est excellente.
Cependant, j'ai rencontré un problème il y a un instant en l'utilisant avec une liaison de clic jQuery typique:
class Game {
foo() {
self = this;
this._pads.on('click', function() {
if (self.go) { $(this).addClass('active'); }
});
}
}
En utilisant une fonction de flèche à la place:
class Game {
foo() {
this._pads.on('click', () => {
if (this.go) { $(this).addClass('active'); }
});
}
}
Et puis $(this)
est converti en fermeture de type ES5 (self = this).
Est-il possible que Traceur ignore "$ (this)" pour la liaison lexicale?
.on()
effet unethis
valeur utile pour vous. Pour moi, il est beaucoup plus clair de sethis
référer à la cible de l'événement que d'avoir à passer l'événement et à trouver la cible manuellement. Je n'ai pas beaucoup joué avec les fonctions fléchées, mais il semble que ce serait déroutant de faire des allers-retours avec des fonctions anonymes.