js闭包的初步学习

闭包是一个辨别前端开发人员是老司机还是萌新的考点之一。

一、了解闭包的模型

刚开始学习闭包,我们需要知道它长的是什么样子,看以前有没有接触过。这就像昨天老妈和我说隔壁小伙真帅一样。我的第一反应是啥样啊,然后想想以前是否遇见过。以下就是闭包的样子。
在这里插入图片描述
官方的定义就是函数中的函数,很好理解,就不做过多阐述了。

二、闭包有啥用

了解闭包啥样子之后,我们就要清楚构建成这个样子是为了什么?(隔壁小伙长的比我还帅是为了什么)

闭包的用途有两个:
1.让函数外部能够得到函数内部的变量(此时函数b获取到了函数a内部的变量num)。
2.让函数内部的变量始终保存在内存中(js设计中的单例模式)。
js有两个变量作用域:全局变量和局部变量。此时num就是局部变量,如果将函数b写在函数a的外部,a执行完以后立即销毁,生命周期结束。所以我们执行函数b是不能使用a的变量的,为了获取函数a内部的变量num,所以需要将函数b写在a内部,此时形成了一个不会销毁的函数空间,即函数a永久保存在内存中,不会被销毁,a的生命周期被延长。
//闭包是为了延长生命周期(长的帅当然是为了好找对象啊)

三、闭包有啥优缺点

我的理解是一个事物被用来干啥,啥就是它的优点。(同理,我妈夸隔壁小伙帅,那么帅肯定就是他的优点了),但是认识事物的时候,只认识到优点是不行的,就像你找那个隔壁小伙处对象时,只看到他帅,就死了心的要和他结婚,可能吗?(他搞基怎么办)。所以我们来看看闭包的缺点。

缺点:使用闭包会一直占用内存,一旦滥用闭包就会让内存消耗变大,情况严重时可能会造成内存泄露
//同理可证,找长的帅的男的当对象要一直提防其他的女人,而我就比较省心了…

四、总结

闭包:函数内套函数的函数(绕口令???)
作用:延长生命周期,函数内私有变量不被外界访问(无论是不是闭包,好像私有变量都不会被外界访问吧)
注意点:慎用(为啥?自己翻上文去)

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值