Использование функций стрелок 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)" для лексической привязки?