Tôi không chắc chắn chính xác làm thế nào để cụm từ câu hỏi của tôi, vì vậy hãy để tôi trình bày một ví dụ:Làm cách nào để thêm chức năng mẫu vào trình xử lý sự kiện trong chức năng khởi tạo?
function foo() {
window.addEventListener("keydown", function(event) {
bar(event.keycode);
}
foo.prototype.bar = function (keycode) {
//code
}
Tôi đã cố gắng sử dụng this.bar()
, nhưng mà kết quả trong việc sử dụng window
như this
. Có cách nào để làm điều này, hoặc tôi sẽ phải gọi một phương pháp khởi tạo thủ công?
Tại sao ràng buộc? 'window.addEventListener (" keydown ", this.bar, false);'? –
@SheikhHeera, để 'bar' được gọi trong ngữ cảnh' this', nếu không nó sẽ được thực thi trong phạm vi toàn cục và sẽ không có lợi thế nào khi có một hàm nguyên mẫu bị ràng buộc. – zzzzBov
@SheikhHeera '.bind' sửa chữa giá trị' này' luôn giống nhau bất kể hàm bị ràng buộc được gọi như thế nào. Trong trường hợp này, nó sẽ luôn là đối tượng 'foo'. – Esailija