谈谈对JS基础(闭包)的理解

              概括:闭包就是一个函数,捕获作用域内的外部绑定.                                                                                 

              官方定义:一个拥有许多变量和绑定了这些变量环境的表达式(通常是一个函数),因为这些变量也称为了这表达式的一部分(闭包实现了全局变量的累加  模块化的代码  减少了全局变量的污染)。

        自由变量和闭包的关系:自由变量闭合于闭包的创建。

        自由变量:如果一个函数内部有其他函数,那么这些内部函数就可以访问外部函数中声明的变量(这些变量就称之为自由变量).

    高阶函数:返回另一个函数的函数成为高阶函数。

          闭包的优点:  1.希望一个变量可以长期驻扎在内存中

                                2.避免全局变量的污染

                                3.私有成员的存在

                                3.私有成员的存在

        闭包的缺点    :1.是常驻内存

                                2.会增大内存的使用量,使用不当很容易造成内容泄露


      例:    function fn(){


                    var a=10;

                function f1(){

                          a++;

              console.log(a);

                  }

                  return f1;

                }

              var f=fn();

              f();

              f();

              f();

          闭包的特性: 1.函数嵌套函数

                                    2.函数内部可以引入外部的参数和变量

                                  3.参数和变量不会被垃圾机制回收

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

推荐阅读更多精彩内容

  • 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 一、变量...
    zock阅读 1,084评论 2 6
  • 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 一、变量...
    zouCode阅读 1,284评论 0 13
  • 前言 有很多人搞不清匿名函数和闭包这两个概念,经常混用。闭包是指有权访问另一个函数作用域中的变量的函数。匿名函数就...
    cduyzh阅读 604评论 3 7
  • 作用域和闭包是 JavaScript 最重要的概念之一,想要进一步学习 JavaScript,就必须理解 Java...
    劼哥stone阅读 1,198评论 1 13
  • 时常觉得心烦 不想听任何人的意见 不是因为固执 任性 只是不想用别人的想法过完这一生 而我 会对自己负责到底 对...
    郭郭丽雪阅读 105评论 0 0