Menggunakan fungsi panah ES6 dengan this
pengikatan leksikal sangat bagus.
Namun, saya mengalami masalah beberapa saat yang lalu menggunakannya dengan jQuery click binding yang khas:
class Game {
foo() {
self = this;
this._pads.on('click', function() {
if (self.go) { $(this).addClass('active'); }
});
}
}
Menggunakan fungsi panah sebagai gantinya:
class Game {
foo() {
this._pads.on('click', () => {
if (this.go) { $(this).addClass('active'); }
});
}
}
Dan kemudian $(this)
akan dikonversi ke penutupan tipe ES5 (self = this).
Apakah cara agar Traceur mengabaikan "$ (this)" untuk pengikatan leksikal?
.on()
memang memilikithis
nilai yang berguna bagi Anda. Bagi saya itu jauh lebih jelas denganthis
mengacu pada target acara daripada harus melewati acara dan menemukan target secara manual. Saya belum banyak bermain dengan fungsi panah tetapi sepertinya akan membingungkan untuk bolak-balik dengan fungsi anonim.