如題,用到閉包,和setTimeout函數怎麼解決?
也歡迎php的實現
回複內容:
如題,用到閉包,和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了。
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); })();}
你這個停不下來吧