84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
如题,用到闭包,和setTimeout函数怎么解决?也欢迎php的实现
业精于勤,荒于嬉;行成于思,毁于随。
var count = (function() { var timer; var i = 0; function change(tar) { i++; console.log(i); if (i === tar) { clearTimeout(timer); return false; } timer = setTimeout(function() { change(tar) }, 1000) } return change; })() count(50)
(function(){ var i=0; var end=setInterval(function(){ if(i>=50){ clearInterval(end); } console.log(i); i++; },1000); })()
用setTimeout的话,就不需要clear了。
setTimeout
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); })(); }
你这个停不下来吧
用
setTimeout
的话,就不需要clear了。好像没用到闭包,那么这样吧:
OK,这样就有闭包了。
function Count(){
你这个停不下来吧