Maison  >  Article  >  développement back-end  >  javascript - 一个数每隔一秒执行加1并打印出来,一直加到50停止,用js如何实现?

javascript - 一个数每隔一秒执行加1并打印出来,一直加到50停止,用js如何实现?

WBOY
WBOYoriginal
2016-10-17 09:30:093109parcourir

如题,用到闭包,和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 </code>

好像没用到闭包,那么这样吧:

<code>void function loop(i) {
    if (i </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>

你这个停不下来吧

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn