首頁 > 後端開發 > php教程 > javascript - 一個數字每隔一秒執行加1並列印出來,一直加到50停止,用js如何實現?

javascript - 一個數字每隔一秒執行加1並列印出來,一直加到50停止,用js如何實現?

WBOY
發布: 2016-10-17 09:30:09
原創
3183 人瀏覽過

如題,用到閉包,和setTimeout函數怎麼解決?
也歡迎php的實現

回覆內容:

如題,用到閉包,和setTimeout函數怎麼解決?
也歡迎php的實現

<code>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)</code>
登入後複製

<code>(function(){
    var i=0;
    var end=setInterval(function(){
        if(i>=50){
            clearInterval(end);
        }
        console.log(i);
        i++;
    },1000);
})()</code>
登入後複製

setTimeout的話,就不需要clear了。

<code>void function loop(i) {
    if (i <= 50) {
        console.log(i);
        setTimeout(loop.bind(this, ++i), 1000);
    }
}(1);</code>
登入後複製

好像沒用到閉包,那麼這樣吧:

<code>void function loop(i) {
    if (i <= 50) {
        console.log(i);
        setTimeout(function() {loop(++i);}, 1000);
    }
}(1);</code>
登入後複製

OK,這樣就有閉包了。

function Count(){

<code>    var counter=0;
    function addCount(){
        counter++;
        console.log(counter);
        if(counter==50){
            return false;
        }
        setTimeout(addCount,1000);
    }
    return addCount;
}
var myCount=new Count();
myCount();</code>
登入後複製

<code>var task = function (){
    var val = 0;
    var target = 50;
    
    (function add(){
        val++;
        if(val === target)
            return;
            
        setTimeout(add, 1000);    
    })();
}</code>
登入後複製

你這個停不下來吧

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板