javascript 闭包

当内部函数被保存到外部时,将会生成闭包。闭包会导致原有作用域链不释放,造
成内存泄露。
内存泄漏就是内存占用,内存被占用的越多,内存就变得越来越少了,就像内存被
泄露了一样
例 
function a(){
  function b(){
    var bbb = 234;
    console.log(aaa);
  }
  var aaa = 123;
  return b;
}
var glob = 100;
var demo = a();
demo();
return b 以后,就返回出去,再销毁 fn a;
存在了外部,执行完 a 销毁 scope 时去掉 a 的连接线,但是因为 return b aAO,GO
存在了外部,所以依然还是可以访问值
在第二次执行 function b 时, aAO{num : 101} ,在 num ++ 就是 102。
function a(){
  var aa = 345;
  function b(){
    var bb = 234;
    function c(){
      var cc = 123;
    }
    c();
  }
  b();
}
a();
执行过程:
先执行 function a(){ var aa = 345;function b (){}b();}
想要执行完上面的 b(); 就需要执行完 function b(){var bb = 234; function c(){}c();}
想要执行 c(); 就要先执行完 function c(){var cc =123;},
b(); 是一个复合语句,执行完 b 里面的每一句话,才能执行 b();
销毁顺序:
哪个先被执行完,哪个先被销毁
c 执行完,先销毁 c 自己的执行期的上下文,
c(); 执行完,那么 b 也执行完了,就销毁 b 的执行期上下文;
b(); 执行完,那么 a 也执行完了,就销毁 a 的执行期上下文

上一篇:

JavaScript 作用域https://blog.csdn.net/qq_38909255/article/details/122300205

 下一篇:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天府之绝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值