ES6 đã thêm các hàm mũi tên chất béo ( =>
), có hai điểm khác biệt chính so với các hàm thông thường:
- cú pháp ngắn hơn (bao gồm trả về ngầm định nếu bạn sử dụng phần thân biểu thức)
- kế thừa
this
từ phạm vi xung quanh
Đây là cả hai tính năng rất hữu ích, nhưng dường như tôi hoàn toàn tách biệt về giá trị và ứng dụng của chúng - đôi khi tôi muốn cái này, hoặc cái kia, hoặc cả hai, hoặc không. Có vẻ kỳ lạ là nếu tôi muốn sử dụng hàm cú pháp ngắn, tôi cũng phải sử dụng this
hành vi -modifying. Và ngược lại. Tôi không thấy lý do tại sao hai khả năng này được triển khai như là một bổ sung duy nhất cho ngôn ngữ.
Điều gì sẽ xảy ra nếu tôi muốn sử dụng một hàm cú pháp ngắn cho sự trở lại ngầm định và ngắn gọn của nó (trong một số ngữ cảnh mà toàn bộ function (..) { return ...}
sẽ hơi khó đọc hơn), nhưng tôi muốn sử dụng this
trong hàm của mình để tham chiếu đến ngữ cảnh gọi? Không có cách nào để làm điều này.
CoffeeScript có cả hai chức năng ->
và =>
kiểu, và rõ ràng ES6 đã mượn =>
kiểu từ đó. Vì vậy, câu hỏi của tôi là, tại sao ES6 không mượn ->
phong cách?
this
với bao đóng trong một khai báo hàm đầy đủ. Đây có thể không phải là phần bạn quan tâm mặc dù.
arguments
.