我想循环一个定时器 从0到9,但是再次调用的时候9却和0同时出现我想知道怎么解决function move(){ for (var i = 0; i < 10; i++) { setTimeout(function(i){ console.log(i); if (i == 9) { i = 0; move() } },i*1000,i) } }; move();
1 回答
Qyouu
TA贡献1786条经验 获得超11个赞
如果是 for 内使用 setTimeout 太浪费内存了。
我秀一个闭包的写法:
var move = function() {
var digit, COUNT;
function show() {
console.log(digit);
setTimeout(function() {
++digit;
digit = digit >= COUNT ? 0 : digit;
show();
}, 1000);
}
return function(count) {
COUNT = count;
digit = 0;
show();
}
}()
move(10);
添加回答
举报
0/150
提交
取消
