javascript - 一个数每隔一秒执行加1并打印出来,一直加到50停止,用js如何实现?
迷茫
迷茫 2017-04-11 13:19:52
[JavaScript讨论组]

如题,用到闭包,和setTimeout函数怎么解决?
也欢迎php的实现

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(6)
天蓬老师
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)
PHP中文网
(function(){
    var i=0;
    var end=setInterval(function(){
        if(i>=50){
            clearInterval(end);
        }
        console.log(i);
        i++;
    },1000);
})()
ringa_lee

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);    
    })();
}
天蓬老师

你这个停不下来吧

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号