Прекрасно использовать стрелочные функции ES6 с лексической this
привязкой.
Однако минуту назад я столкнулся с проблемой, используя его с типичной привязкой кликов jQuery:
class Game {
foo() {
self = this;
this._pads.on('click', function() {
if (self.go) { $(this).addClass('active'); }
});
}
}
Вместо этого используйте стрелочную функцию:
class Game {
foo() {
this._pads.on('click', () => {
if (this.go) { $(this).addClass('active'); }
});
}
}
А затем $(this)
преобразуется в закрытие типа ES5 (self = this).
Можно ли заставить Traceur игнорировать "$ (this)" для лексической привязки?
.on()
она действительно имеетthis
полезное для вас значение. Для меня гораздо яснееthis
ссылаться на цель события, чем передавать событие и находить цель вручную. Я не очень много играл со стрелочными функциями, но кажется, что переходить туда и обратно с анонимными функциями было бы непросто.