Tôi hiện đang triển khai đặc điểm kỹ thuật static land (thay thế cho vùng đất tưởng tượng). Tôi muốn không chỉ sử dụng các đối tượng đơn giản như các loại mà còn các lớp ES2015 với các phương thức tĩnh. Tôi đã triển khai thực hiện các phương thức tĩnh này dưới dạng các hàm mũi tên trong biểu mẫu được curried thay vì các hàm bình thường. Tuy nhiên, điều này là không thể với các lớp ES2015:Lớp học có chức năng mũi tên tĩnh
class List extends Array {
static map = f => xs => xs.map(x => f(x))
static of = x => [x]
}
My map
không cần nó riêng this
, bởi vì nó chỉ đơn thuần là một hàm cà ri vào constructor List
. Để làm cho nó hoạt động tôi phải viết static map(f) { return xs => xs.map(x => f(x)) }
, những gì là rất khó chịu.
- Tại sao tôi không thể sử dụng chức năng mũi tên cùng với biểu thức gán trong lớp ES2015?
- Có cách nào ngắn gọn để đạt được mục tiêu của mình không?
Nếu mọi thứ đều tĩnh, tại sao 'mở rộng mảng '? –
bản sao có thể có của https://stackoverflow.com/questions/32545495/es6-class-instance-properties? – Bergi
@ T.J.Ý tưởng là để làm cho một thư viện tĩnh hiện có tương thích với đất. Vì vậy, sẽ có các lớp với các thuộc tính không tĩnh, mà phải được mở rộng. – ftor