Câu trả lời được chấp nhận là tuyệt vời. Tốt nhất là bạn nên sử dụng cú pháp hàm bình thường thay vì "cú pháp hàm mũi tên".
Nhưng có thể bạn thực sự thích các chức năng mũi tên; có thể bạn sử dụng hàm mũi tên vì một lý do khác mà cú pháp hàm thông thường không thể thay thế ; bạn có thể cần một giải pháp khác.
Ví dụ, tôi nhận thấy việc sử dụng OP this, bạn có thể muốn liên kết từ thisvựng; hay còn gọi là "không ràng buộc của điều này" ), và các hàm mũi tên rất tốt cho liên kết từ vựng đó.
Bạn vẫn có thể sử dụng hàm mũi tên với getter thông qua Object.definePropertykỹ thuật này.
{
...
Object.defineProperty(your_obj, 'status', {
get : () => this.xhr.status
});
...
}
Xem các đề cập về object initializationkỹ thuật (hay còn gọi là get NAME() {...}) so với definePropertykỹ thuật (còn gọi là get : ()=>{}) . Có ít nhất một sự khác biệt đáng kể, việc sử dụng definePropertyyêu cầu các biến đã tồn tại:
Xác định một getter trên các đối tượng hiện có
tức là với Object.definePropertybạn phải đảm bảo rằng your_obj(trong ví dụ của tôi) tồn tại và được lưu vào một biến (trong khi với một, object-initializationbạn có thể trả về một đối tượng-chữ trong lần khởi tạo đối tượng của bạn {..., get(){ }, ... }:). Thông tin thêm về Object.definePropertycụ thể, tại đây
Object.defineProperty(...)dường như có hỗ trợ trình duyệt tương đương với get NAME(){...}cú pháp; trình duyệt hiện đại, IE 9.
(method, url, something) => this.xhr.open(method. url, something).