js闭包

痴心易碎 提交于 2020-02-25 00:37:34

1.闭包的三个条件

(1)函数内嵌套函数,外部函数直接或间接返回内部函数
(2)内部函数可以引用外部函数的参数或变量
(3)形成一个不会被销毁的函数空间,也就是说参数和变量不会垃圾回收机制回收
2.什么是闭包空间
满足了以上三个条件,我们就管外部函数的执行空间叫做闭包空间,把返回的内部函数叫做外部函数的闭包函数

3.闭包的特点
优点:
(1)延长了变量的生命周期
(2)可以访问函数内部的私有变量
(3)保护了私有变量
缺点:
因为闭包的执行空间不会被销毁,所以会一直占据内存,可能会造成内存溢出,因此不到万不得已不要使用闭包。
4.作用
当需要延长变量的生命周期的时候,或者需要访问函数的私有变量时使用

闭包代码:

//外部函数a
 function a() {
      var num = 100
//内部函数b
      return function b() {
        console.log(num)
      }
    }
var res=a();//接受到内部函数b
res();//执行函数b,输出num

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!