//в конструкторе класса объявлена переменная timed
this.timed = false;
} //конструктор закрылся
//потом запускается left()
left(){
if(!this.timed){this.timer(snake.left);}
//.. отрабатывает один раз функция полностью
}
timer(v){
let timerId;
let func = v;
let that = this;
if(this.timed){
that.clearTimeout(timerId);
}
this.timed = true;
timerId = setTimeout(function tick() {
func();
timerId = setTimeout(tick, 500);
}, 500);
}
// запускается метод таймер, и при повторном запуске left() при проверке условия вылетает ошибка,
// всё проверку не прошло, код дальше не работает
// ошибка Uncaught TypeError: Cannot read property 'timed' of undefined