Почему выходит ошибка при клике на праву кнопку?

let numbers = {
    number: document.getElementById('number'),
    leftBtn: document.getElementById('left'),
    rightBtn: document.getElementById('right'),

    start () {
       this.leftBtn.addEventListener('click', left);
       this.rightBtn.addEventListener('click', numbers.right);
    },

    right () {
        alert(this.number.innerHTML);
    }
}

numbers.start();
<div id="number">1</div>
<button id="left"> < </button>
<button id="right"> > </button>


Ответы (1 шт):

Автор решения: Алексей Шиманский

Потому что не

this.rightBtn.addEventListener('click', numbers.right);

а

this.rightBtn.addEventListener('click', this.right.bind(this));

numbers.right --- это же обращение к статическому метода класса, а не к экземпляру.

При этом в других местах вы пишите именно с this. Очень странно))

→ Ссылка