闭包的概念

function f1(){
    n = 999;
    function f2(){
        alert(n);
    }
    return f2;
}
var result = f1();
result(); // 999

上面代码中的f2函数,就是闭包。

各种专业文献上的“闭包”(closure)定义非常抽象,很难看懂。其实,闭包就是能够读取其他函数内部变量的函数。

由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成“定义在一个函数内部的函数”。

所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。

闭包用途:一是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。

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

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,195评论 0 13
  • 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 一、变量...
    zock阅读 1,084评论 2 6
  • 一缕缕的云烟 一阵微微的叹息 相隔又交汇 一束暖暖的情 一厢情愿 交成了难以忘怀的错 道一句珍重的离别 不问红尘给...
    吾梦雨和姜德佳阅读 175评论 0 3
  • 思念的心,牵挂的人。
    党军岗阅读 244评论 0 0