如题,用到闭包,和setTimeout函数怎么解决?
也欢迎php的实现
(function(){
var i=0;
var end=setInterval(function(){
if(i>=50){
clearInterval(end);
}
console.log(i);
i++;
},1000);
})()
用setTimeout
的话,就不需要clear了。
void function loop(i) {
if (i <= 50) {
console.log(i);
setTimeout(loop.bind(this, ++i), 1000);
}
}(1);
好像没用到闭包,那么这样吧:
void function loop(i) {
if (i <= 50) {
console.log(i);
setTimeout(function() {loop(++i);}, 1000);
}
}(1);
OK,这样就有闭包了。
function Count(){
var counter=0;
function addCount(){
counter++;
console.log(counter);
if(counter==50){
return false;
}
setTimeout(addCount,1000);
}
return addCount;
}
var myCount=new Count();
myCount();
var task = function (){
var val = 0;
var target = 50;
(function add(){
val++;
if(val === target)
return;
setTimeout(add, 1000);
})();
}
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决