Tôi đã thử nghiệm ES6 được một thời gian và tôi chỉ gặp một vấn đề nhỏ.
Tôi thực sự thích sử dụng các chức năng mũi tên, và bất cứ khi nào tôi có thể, tôi sử dụng chúng.
Tuy nhiên, có vẻ như bạn không thể ràng buộc họ!
Đây là chức năng:
var f = () => console.log(this);
Đây là đối tượng tôi muốn liên kết hàm với:
var o = {'a': 42};
Và đây là cách tôi sẽ liên kết f
với o
:
var fBound = f.bind(o);
Và sau đó tôi chỉ có thể gọi fBound
:
fBound();
Cái nào sẽ xuất cái này ( o
đối tượng):
{'a': 42}
Mát mẻ! Đáng yêu! Ngoại trừ việc nó không hoạt động. Thay vì xuất ra o
đối tượng, nó xuất ra window
đối tượng.
Vì vậy, tôi muốn biết: bạn có thể liên kết các chức năng mũi tên? (Và nếu vậy, làm thế nào?)
Tôi đã kiểm tra mã ở trên trong Google Chrome 48 và Firefox 43 và kết quả là như nhau.
this
phạm vi cha của chúng.