Не могу удалить обработчик события
Приветствую!
Назначаю, например, кнопке обработчик события. Обработчиком события является метод класса. Используюя функцию bind этот вопрос решается. А удалить этот обработчик я уже не могу. примерчик здесь |
https://jsfiddle.net/q5nnnu2L/
у тебя bind создавал каждый раз новую функцию, потому ты уже не мог удалить добавленную |
Благодарю! Всё работает, но легче не стало.
1. Как браузер в строчке this.onClick = this.onClick.bind(this);понимает, что this.onClickсправа и слева это разные вещи? 2. В действительности объект присваивает в качестве обработчика не свой метод, а метод своего хозяина (другого объекта). Это как я понимаю разницы не составит? |
fedushok,
this.onClick = this.onClick.bind(this); смысл этой строчки: в конструкторе экземпляра берется из прототипа метод onClick, сотворяется из него забинженная функция, и записывается в поле onClick экземпляра. После этого this.onClick всегда будет браться из экземпляра (не из прототипа), ибо так устроен этот грёбаный мир. |
В современном js(ie9+) не надо париться с биндами для событий, просто используй объект с hanleEvent, для того он и придуман:
https://jsfiddle.net/q5nnnu2L/1/ |
Часовой пояс GMT +3, время: 06:37. |