Показать сообщение отдельно
  #4 (permalink)  
Старый 27.11.2019, 22:27
Аватар для deGeneral
Интересующийся
Отправить личное сообщение для deGeneral Посмотреть профиль Найти все сообщения от deGeneral
 
Регистрация: 27.11.2019
Сообщений: 10

Вот она проблемка, определился с ней наконец-то:

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?
Ответить с цитированием