Контекст в слушателях событий
Подскажите, имеется класс, нужно внутри метода registerEvents выполнить проверку соответствия нажатой клавиши с this.currentSymbol, но разумеется теряется контекст, не могу понять как его правильно забиндить.
class Something{
registerEvents() {
function pressKey(event){
if (event.key==this.currentSymbol) {this.success}
}
document.addEventListener('keyup', pressKey)
}
renderWord() {
this.currentSymbol = this.wordElement.querySelector('.symbol');
}
}
new Something(document.getElementById('some'))
Ответы (1 шт):
Автор решения: SwaD
→ Ссылка
Попробуйте передать контекст класса через обычную переменную, вот так:
registerEvents() {
const self = this; // Контекст класса будет лежать в self
function pressKey(event){
if (event.key === self.currentSymbol) {self.success}
}
document.addEventListener('keyup', pressKey)
}