Tengo una función setInterval() guardada en una variable para poder borrarla después con clearInterval() .
walkRight = setInterval(moveSnakeRight,1000) walkLeft = setInterval(moveSnakeLeft, 1000) walkUp = setInterval(moveSnakeUp, 1000) walkDown = setInterval(moveSnakeDown, 1000) //and clearInterval(walkLeft) clearInterval(walkRight) clearInterval(walkUp)Mi pregunta es si hay alguna forma de volver a llamar al mismo SetInterval, en este caso, walkRight o walkLeft o walkUp. Cualquiera de ellos..
Si pruebo walkRight() no funcionará porque no es una función y si pruebo window.walkRight tampoco funciona.
El valor de retorno de setInterval es un número que identifica el intervalo únicamente con el fin de borrarlo.
No hay forma de usar ese número para obtener otra información sobre el intervalo. No puede usarlo para determinar qué función se usó para ejecutar el intervalo. No puede usarlo para volver a llamar a esa función.
Si desea esa información, debe almacenarla por separado.
Por ejemplo:
const moveSnakeRight = () => { console.log('moving right'); }; class IntervalController { constructor(func) { this.func = func; this.start(); } start() { if (typeof this.interval === "undefined") { this.interval = setInterval(this.func, 1000); } } stop() { clearInterval(this.interval); this.interval = undefined; } } const moveRightController = new IntervalController(moveSnakeRight); document.querySelector('#start').addEventListener('click', () => moveRightController.start()); document.querySelector('#stop').addEventListener('click', () => moveRightController.stop()); <button id=start>Start</button> <button id=stop>Stop</button>