Menggunakan fungsi panah ES6 dengan thispengikatan 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 memilikithisnilai yang berguna bagi Anda. Bagi saya itu jauh lebih jelas denganthismengacu 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.