Как понять контекст в js, всю голову сломала?

Вот отрывок кода, в chrome работает, в mozille пишет event not defined

Я поняла замыкание, поняла контекст в общем, но с событиями вообще не понимаю, что происходит. Делала декоратор, но я не понимаю почему он работает именно так)

Тыкните в меня примером, я расстроена !

export default class MyClass {

	start() {
		this.elem = document.querySelector('.elem');
		this.elem.addEventListener('click', () => this.check(event));
	}

	check(e) {
    //код
	}

}
  • Вопрос задан
  • 260 просмотров
Решения вопроса 2
Xuxicheta
@Xuxicheta
инженер
export default class MyClass {

  start() {
    this.elem = document.querySelector('.elem');
    this.elem.addEventListener('click', (event) => this.check(event));
  }

  check(e) {
    //код
  }

}

или
this.elem.addEventListener('click', this.check.bind(this));


в первом случае мы передаем в функцию коллбек для addListener наш контекст и, соответственно, его метод через замыкание.
во втором случае создаем функцию с прибитым гвоздями контекстом используя bind, и передаем ее как коллбек в addListener
Ответ написан
this.elem.addEventListener('click', event => this.check(event));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы