Я добавляю прослушиватель событий к кнопке внутри метода объекта. Я пытаюсь добавить вызов к другой функции метода, но когда я использую this.reset()
, 'this' указывает на кнопку слушателя //, а не на сам объект.
Этот код был преобразован в объект и раньше работал нормально. В этом случае мне не нужно было использовать «это».
const colorGame = {
reset: function() {...},
init: function() {
for (let i = 0; i < modeSwitches.length; i++) {
modeSwitches[i].addEventListener("click", function() {
modeSwitches[0].classList.remove('selected');
modeSwitches[1].classList.remove('selected');
// These two lines are why I can't use anonymous functions
this.classList.add('selected');
this.textContent === 'Easy' ? numSquares = 3 : numSquares = 6;
this.reset();
});
}
...
resetButton.addEventListener('click', function() {
this.reset(); // This call also fails with the same error
});
Ошибка в консоли браузера Chrome: colorGame.js:78 Uncaught TypeError: this.reset is not a function
Мое намерение - использовать colorGame.reset()
и вызывать его при нажатии кнопок.