JS面向对象--你真的理解闭包了吗?

JS中的闭包,可能在实际开发中我们用的很少,但是面试的时候是必问的。
所以今儿个总结一下什么是闭包。

首先,我们定义一个变量。会分为两种情况,1是定义在全局中,我们关闭程序的时候变量会从内存中释放。2是定义在局部中,在函数中定义一个变量,当我函数调用结束后,会从内存中释放。

闭包的存在,就是为了当我调用了声明局部变量的函数后,我的局部变量还能存在在全局之中。延长了我局部变量的生命周期。

接下来简单写一个闭包~~

function aaa(){
   var a =10
    function bbb(){
      console.log(a)   
   }
  return bbb
}

var num = aaa()
num()

  

那么是怎么判断一个程序中有闭包呢?
1.是否有外层函数和内层函数 eg:aaa() bbb()
2.外层函数是否有局部变量 eg: var a =10
3.内层函数是否操作了外层函数的局部变量 eg:console.log(a)
4.内层函数是否和外面产生了关联 eg: return bbb

感谢大家看到这里,希望这篇文章对大家都有帮助~~~

转载于:https://www.cnblogs.com/JiAyInNnNn/p/11070274.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值