JS-闭包

闭包: 在一个函数A内定义并返回另外一个函数B,并用变量接收这个函数B。此时会形成闭包。

参考:学习Javascript闭包(Closure) - 阮一峰的网络日志

function demo() {
  var a = 10;
  return function() {
    console.log(++a)
  }
}
var fun = demo();
fun(); //11
var fun1 = demo();
fun1(); //11

形成闭包的条件:

  • 一个不会被销毁的函数执行空间
  • 函数内部直接或者间接的返回一个函数
  • 内部函数操作(访问,赋值)着外部函数的变量;

当三个条件都满足的时候,我们管内部的函数叫做外部函数的闭包函数;

闭包销毁: 销毁函数的空间;

方法1.外不再有变量接收;

方法2. 外部接受的变量被重新赋值;


闭包的好处:

  1. 可以保护内部的变量

  2. 可以让内部的内容始终保存在内存中不销毁

闭包的坏处:

  1. 必须要通过函数进行访问

  2. 因为不销毁,所以导致内存利用率过低,可能导致内存泄漏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值