首页 > 其他 > 详细

闭包知识

时间:2018-02-24 10:07:53      阅读:228      评论:0      收藏:0      [点我收藏+]

  

技术分享图片

搞清楚上面5点,就差不多可以了

 

什么是闭包:闭包就是里面有一个函数,和被这个函数捕获的一些变量 比如 a b

技术分享图片

闭包的两种情况:上图是其中一种,一共有两种如下图:

技术分享图片

 

 

 

 

 查看闭包:chrome浏览器打断点可以查看到   各个浏览器查看闭包里的内容可能有差别

技术分享图片

 

如果 f2中没使用父里面的变量 则不会产生闭包:

技术分享图片

 

没用父的,用的是父的父  会产生闭包:

技术分享图片

 

注意f2在外面(return返回 )会产生闭包   不是这样的 ,在f1里面的f2也会产生闭包:

技术分享图片

 

闭包的创建时机:js运行的词法分析阶段(全文扫描js代码)时候就已经产生了,只是没有工具可以看到

闭包的本质:就是形成的一个作用域链:

 技术分享图片

 

闭包的好处:

技术分享图片

 

减少全局变量:

原本通过全局变量解决方案:  右边错误的方式,不能起到每次调用add(),a的值会累计的情况下+1,左边的方式可以达到但是要通过全局变量的方式

技术分享图片技术分享图片    技术分享图片

闭包可以在不使用全局变量的方式下实现:调用一次后 ,第二次a依然不变 继续累加   保留了上一次a的值

技术分享图片

 

 减少传递给函数的参数数量:

技术分享图片

 

闭包知识

原文:https://www.cnblogs.com/alifetime/p/8464013.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!