美文网首页
谈谈对JS基础(闭包)的理解

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

作者: 二狗的小仙女 | 来源:发表于2017-06-09 21:46 被阅读0次

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

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

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

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

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

              闭包的优点:  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.参数和变量不会被垃圾机制回收

    相关文章

      网友评论

          本文标题:谈谈对JS基础(闭包)的理解

          本文链接:https://www.haomeiwen.com/subject/slofqxtx.html