การใช้ฟังก์ชันลูกศร 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) type closed
เป็นวิธีที่จะให้ Traceur ละเว้น "$ (this)" สำหรับการผูกศัพท์หรือไม่?
.on()
ไม่แน่นอนมีthis
ค่าเป็นประโยชน์กับคุณ สำหรับฉันแล้วการthis
อ้างถึงเป้าหมายเหตุการณ์นั้นชัดเจนกว่าการต้องส่งผ่านเหตุการณ์และค้นหาเป้าหมายด้วยตนเอง ฉันไม่ค่อยได้เล่นกับฟังก์ชั่นลูกศรมากนัก แต่ดูเหมือนว่ามันจะสับสนเมื่อต้องกลับไปกลับมากับฟังก์ชันนิรนาม