У меня проблема с обработчиками событий в javascript, возможно, из-за моего неполного контроля над языком.
Я хочу зарегистрировать прослушиватели событий, используя addEventListener () / attachEvent ();Я также хочу иметь возможность удалить слушателей позже, поэтому я не могу зарегистрировать анонимные функции.
Скажем, теперь я хочу зарегистрировать метод объекта в качестве прослушивателя событий.Сначала я ожидал, что addEventListener(event, node, object.method)
будет работать.Однако после прочтения событий я теперь понимаю, что ключевое слово this
будет ссылаться на цель события при вызове прослушивателя событий, а не на мой объект.
Чтобы обойти это, я создал новый метод methodCallback объекта, например:
object.methodCallback = function () {
self.method();
}
переменная self
установлена для копирования this
в объектеконструктор.Затем я регистрирую object.methodCallback в качестве обработчика событий.
Мне кажется, это неправильный способ сделать это.Но какой правильный путь?
Я прошу прощения, если этот вопрос является распространенным, но я до сих пор не смог найти ответ по SO