Tôi đã chơi xung quanh với các lớp học es6 và cố gắng thiết lập một lớp chuột đơn giản.javascript removeEventListener không hoạt động bên trong một lớp học
addEventListener
hoạt động, nhưng vì một lý do nào đó, tôi không thể xóa chúng với removeEventListener
. Tôi đoán điều này có liên quan đến bối cảnh ràng buộc, nhưng tôi không thể tìm ra cách sửa lỗi này.
'use strict'
class Mouser {
constructor() {
this.counter = 0
this.clicked = function (event) {
this.counter++
console.log('clicks:', this.counter)
if (this.counter >= 10) this.remove()
}
window.addEventListener('click', this.clicked.bind(this))
}
remove() {
console.log('Removing click listener') // this line runs ..
window.removeEventListener('click', this.clicked.bind(this))
}
}
var mouse = new Mouser()
ahh cảm ơn! Các ràng buộc đã thực sự làm phiền tôi .. – peonicles
Cảm ơn! Tôi đã sử dụng React, điều đó buộc tôi phải sử dụng bind (cái này) ở rất nhiều nơi, và điều đó thực sự khiến tôi bối rối. – DougieHauser
Cảm ơn bạn cảm ơn! –