9、javascript闭包

9、javascript闭包

00:00
03:38


闭包就是 能够读取 其他函数内部变量的函数 只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“

我们来看下“官方”的解释是:
    所谓“闭包”,指的是一个拥有 许多变量 和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。
    通俗的讲:就是函数a的内部有一个函数b,函数b被函数a外部的一个变量引用的时候,就创建了一个闭包。

          function A() {
var i = 1;
this.B =function() {
return ++i;
}
}

               var objectA=new  A();
                  var returnB=objectA.b();
                            n=objectA.b();

特新:
①.封闭性:外界无法访问闭包内部的数据,如果在闭包内声明变量,外界是无法访问的,除非闭包主动向外界提供访问接口;
②.持久性:一般的函数,调用完毕之后,系统自动注销函数,而对于闭包来说,在外部函数被调用之后,闭包结构依然保存在
系统中,闭包中的数据依然存在,从而实现对数据的持久使用。

优点:
① 减少全局变量。
② 减少传递函数的参数量
3、封装符合面向对象思想


缺点:
  使用闭包会占有内存资源,过多的使用闭包会导致内存溢出等.

以上内容来自专辑
用户评论
  • 1588860tzro

    自己都说懵了

  • championYang

    还好吧,本来闭包就是挺难的一块