Вот она проблемка, определился с ней наконец-то:
class MyClass {
constructor(x) {
this.x = x;
}
onKeyDown(event) { // Если эту функцию привязать к EventListener,
console.log(this); // то this из нее будет смотреть на document, x не виден
}
start() {
document.addEventListener('keydown', this.onKeyDown);
document.addEventListener('keydown', (event) => {
console.log(this); // а отсюда this будет смотреть на объект класса MyClass и прекрасно увидит this.x
});
}
}
window.onload = function() {
let c = new MyClass(5);
c.start();
};
Как объяснить, почему так происходит?
Как сделать так, чтобы из поименованной функции виделся x?