Sử dụng các hàm mũi tên ES6 với this
liên kết từ vựng là rất tốt.
Tuy nhiên, tôi đã gặp sự cố cách đây không lâu khi sử dụng nó với liên kết nhấp chuột jQuery điển hình:
class Game {
foo() {
self = this;
this._pads.on('click', function() {
if (self.go) { $(this).addClass('active'); }
});
}
}
Sử dụng một hàm mũi tên để thay thế:
class Game {
foo() {
this._pads.on('click', () => {
if (this.go) { $(this).addClass('active'); }
});
}
}
Và sau đó $(this)
được chuyển đổi sang kiểu đóng cửa ES5 (self = this).
Có cách nào để Traceur bỏ qua "$ (this)" cho ràng buộc từ vựng không?
.on()
nó thực sự cóthis
giá trị hữu ích cho bạn. Đối với tôi, việcthis
đề cập đến mục tiêu sự kiện rõ ràng hơn nhiều so với việc phải vượt qua sự kiện và tìm mục tiêu theo cách thủ công. Tôi chưa chơi nhiều với các hàm mũi tên nhưng có vẻ như sẽ rất khó hiểu khi quay đi quay lại với các hàm ẩn danh.