Używanie funkcji strzałkowych ES6 z this
powiązaniami leksykalnymi jest świetne.
Jednak przed chwilą napotkałem problem, używając go z typowym powiązaniem kliknięcia jQuery:
class Game {
foo() {
self = this;
this._pads.on('click', function() {
if (self.go) { $(this).addClass('active'); }
});
}
}
Zamiast tego użyj funkcji strzałki:
class Game {
foo() {
this._pads.on('click', () => {
if (this.go) { $(this).addClass('active'); }
});
}
}
A następnie $(this)
jest konwertowany na zamknięcie typu ES5 (self = this).
Czy jest sposób, aby Traceur ignorował "$ (this)" dla leksykalnego wiązania?
.on()
rzeczywiście ma onathis
przydatną wartość. Dla mnie jest to o wiele jaśniejsze wthis
odniesieniu do celu zdarzenia niż konieczność przechodzenia go i znajdowania celu ręcznie. Nie bawiłem się zbytnio funkcjami strzałkowymi, ale wydaje się, że poruszanie się w tę iz powrotem z funkcjami anonimowymi byłoby mylące.