ฉันได้ทดลอง ES6 มาระยะหนึ่งแล้วและเพิ่งพบปัญหาเล็กน้อย
ฉันชอบใช้ฟังก์ชันลูกศรมากและเมื่อใดก็ตามที่ทำได้ฉันก็ใช้มัน
อย่างไรก็ตามดูเหมือนว่าคุณไม่สามารถผูกมันได้!
นี่คือฟังก์ชั่น:
var f = () => console.log(this);
นี่คือวัตถุที่ฉันต้องการผูกฟังก์ชันเข้ากับ:
var o = {'a': 42};
และนี่คือวิธีที่ฉันจะผูกf
กับo
:
var fBound = f.bind(o);
จากนั้นฉันสามารถโทรfBound
:
fBound();
ซึ่งจะส่งออกสิ่งนี้ ( o
วัตถุ):
{'a': 42}
เย็น! น่ารัก! ยกเว้นว่าใช้ไม่ได้. แทนที่จะส่งออกo
อ็อบเจ็กต์มันจะส่งออกwindow
อ็อบเจ็กต์
ฉันอยากรู้ว่า: คุณผูกฟังก์ชันลูกศรได้ไหม (และถ้าเป็นเช่นนั้นอย่างไร)
ฉันได้ทดสอบโค้ดด้านบนใน Google Chrome 48 และ Firefox 43 แล้วผลลัพธ์ก็เหมือนกัน
this
ขอบเขตหลัก