js闭包

判断checkstatus的状态,为false则隔1.5秒的倍数再次判断checkstatus,只有当checkstatus为true时执行callback回调
var checkstatus = false;
var callback = function() {
    var now = new Date(); 
    console.log(now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds() + ' callback run~~');
};
function check(checkstatus, callback){
    time(0, checkstatus, callback)
}
function time(i, checkstatus, callback) {
    setTimeout(function(i, checkstatus, callback) {
        var now = new Date();
        console.log(now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds() + ' output:' + i);
        if (i == 5) {
            checkstatus = true;
        }
        if ( !checkstatus ) {
            time(++i, checkstatus, callback);
        } else {
            callback();
        }
    }, i * 1500, i, checkstatus, callback);
}

check(checkstatus, callback);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 谈起闭包,它可是JavaScript两个核心技术之一(异步和闭包),在面试以及实际应用当中,我们都离不开它们,甚至...
    sponing阅读 704评论 0 7
  • 一、问题 (一)、什么是闭包? 有什么作用 闭包是指能够访问自由变量的函数 (变量在本地使用,但在闭包中定义)。换...
    该帐号已被查封_才怪阅读 401评论 0 1
  • 本文首发于我的博客,这是我的github,欢迎来访。   闭包是指有权访问另一个函数作用域中的变量的函数,创建闭包...
    空_城__阅读 224评论 0 0
  • 本文首发于我的博客,这是我的github,欢迎star。 闭包是指有权访问另一个函数作用域中的变量的函数,创建闭包...
    空_城__阅读 220评论 0 1
  • 闭包: 官方”的解释是:闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该...
    小裁缝sun阅读 629评论 0 5