На звание знатока JS не претендую.
При разработке учебного проекта сталкнулся с непонятной ситуацией.
Когда я запуска через setInterval метод экземпляра класса получаю сообщение
"this.snakeBody is undefined"
Пример запуска setInterval(snake.move, 500);
А если обернуть вызов метода в функцию то всё работает (пример запуска
setInterval(function() {
snake.move();
}, 500);
Собственно говоря хочу понять, почему не работает вызов метода без обёртки.
На всякий случай ссылка на песочницу: https://plnkr.co/edit/xnhafbsDVaZXp9D7CQLS
строка описания запуска - 146
Во-первых, метода класса неправильно вызван:
setInterval(snake.move(), 500)
Но запись выше будет вызвана один раз при запуске setInterval при каждом нажатии кнопки. Поэтому смотрите ниже.
Во-вторых, setInterval в качестве первого аргумента должен получать функцию, которая запустит то, что Вам необходимо внутри себя с конкретным интервалом:
setInterval(() => snake.move(), 500)
Сборка персонального компьютера от Artline: умный выбор для современных пользователей