Bonjour

J'essaie de faire un gestionnaire de touches. Lorsque j'appuie sur une touche, la méthode xx est appellée

Le soucis est que cette méthode ne peut se référer à la classe afin d'aller m'afficher la propriété. J'ai compris que c'est normal mais je ne vois pas comment y remédier

Voici la classe

<!DOCTYPE html>
<head>
</head>
<body>
    <script>

        class test {

            constructor() {
                this.list = {};
            }

            add(index, value) {
                this.list[index] = value;
            }

            onKeyDownEvent(event) {
                console.log(this, this.list);
            }
        }

        var t = new test()
        t.add('a', 'popol');
        console.log(t);
        window.addEventListener('keydown', t.onKeyDownEvent);

    </script>
</body>
</html>

Merci de votre aide

2 réponses


Balsakup
Réponse acceptée

Salut

Voilà, il suffit de binder ta classe au handler

window.addEventListener('keydown', t.onKeyDownEvent.bind(t), false);
Popolito
Auteur

Merci beaucoup. PLus qu'à comprendre comment ca marche et j'ai gagné ma journée :)