在JavaScript中如何为JavaScript循环添加延迟 在下面的代码中
snakeclass.prototype.start = function() {
while(1){
if(this.collision()){
console.log("game over");
break;
}
this.movesnake();
// delay here by 300 miliseconds
}
};
我如何在这里使用Set Timeout功能;
答案 0 :(得分:5)
这不起作用。如果你这样做,你的浏览器就会冻结:
while (1) {}
但您可以使用setInterval。
snakeclass.prototype.start = function() {
var interval;
var doo = function () {
if(this.collision()){
console.log("game over");
clearInterval(interval);
}
this.movesnake();
}.bind(this); // bind this so it can be accessed again inside the function
doo();
timeout = setInterval(doo, 300);
};