闭包的形成,闭包的优点和缺点,闭包有哪些作用?

什么是闭包?形成闭包的条件?闭包的优点和缺点?闭包有哪些作用?
1.闭包须具备三个条件,缺一不可。
2.函数A里面直接或者间接返回一个函数B。
3. 函数B里面使用着函数A里面的私有变量或者私有数据。
4. A函数在外面有一个变量来接收函数B,形成一个不会销毁的函数空间
5. 闭包函数示例:

  function A(){
   //这个num变量就是函数A的私有变量
     var num = 100 ;
     return function B() {
          num++;
          console.log(num);
   }
   }
    //res接收的是A函数执行完成以后的返回值,
   //res接收的是A函数内部返回的一个复杂的数据类型(函数B)
   //导致A函数的执行空间不会被销毁
   var res1 = A();  
   var res2 = A(); 
    res1 = 101;
    res2 = 101;
    res1 = 102;
    res2 = 102;
    res2 = 103;
    ...
闭包的有点和缺点:
 1.延长了变量的生命周期
		优点:因为执行空间不会销毁,变量也不会被销毁
		缺点:因为执行空间不会销毁,会一直存在内存中
 2.可以访问函数内部的私有变量或者私有数据
 			优点:可以利用闭包访问函数内的私有变量
 			缺点:执行空间不会销毁,会一直存在内存中
 3. 保护私有变量(只要是函数都有这个特点)
 			优点:保护私有变量不被外界访问
 			缺点:如果想要访问私有变量,必须要利用闭包函数
闭包的致命缺点:
因为当一段内存在内存空间一直存在,不被销毁,就会出现内存占用,当占用过多时,导致内存溢出,结果就容易造成内存泄漏。
闭包的作用:
当你需要延长变量的生命周期或者需要访问函数里面的私有变量或者私有数据,可以使用闭包,如果有别的办法,就尽量不使用闭包,慎用闭包,因为容易造成内存泄漏。
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值