闭包closure

闭包是指有权访问另一个函数作用域中的变量的函数。”

                                      ——《JavaScript高级程序设计》

function foo() { // 闭包的另一种解释:带有数据的函数

    var a = 'test';

    function bar() {

        console.log(a);

    }

    bar();

}

foo();

改造后(去掉控制台输出)

function foo() {

    var a = 'test';

    function bar() {

        return a;

    }

    return bar;

}

var bar = foo();

bar(); // 可以通过foo访问到变量a

常见闭包,

例如:

function wait(message) {

    setTimeout(function() {

        console.log(message);

    }, 1000);

}

wait('hello, closure');

(function() {

    var doc = document;

    var util = {

        byId: function(id) {

            return doc.getElementById(id);

        };

    };

    window.jQuery = util;

})();

jQuery.byId('hh'); // jQuery代码组织方式

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

推荐阅读更多精彩内容

  • ● 闭包基础 ● 闭包作用 ● 闭包经典例子 ● 闭包应用 ● 闭包缺点 ● 参考资料 1、闭包基础 作用域和作...
    lzyuan阅读 968评论 0 0
  • 闭包:指有权访问另一个函数作用域中的变量的函数闭包实现条件:内部函数使用了外部函数的变量、外部函数已退出、内部函数...
    闪电西兰花阅读 311评论 0 0
  • 闭包指的是有权访问另一个函数作用域中变量的函数。 ###函数调用过程(第一次被调用时) 1. 创建执行环境(exe...
    huhu213阅读 194评论 0 0
  • 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 下面就是...
    鲁uin阅读 308评论 0 2
  • 下午两点过一些,迎着红彤的阳光,不刺目的阳光斜着射入窗台,温柔的躺在了天台上,窗外都是这沃野黄色和绿色交映的绚烂,...
    酸与鱼阅读 671评论 0 0