JS闭包详解

之前看了好几篇解释JS闭包的,还是不太明白,后来看了一篇博客,总算是理解。

简单来说:那么如何才能在外部获取到子方法的局部变量呢!可以通过js闭包。

先上一张图:


image.png

在外部无法获取到func3内部的局部变量,但是func3内部的局部方法func4却可以获取到,因此 返回一个func4的引用 ,这样在外部通过这个func4就可以获取到func3的内部变量。

虽然是绕了一个圈子,但是在方法外部却通过这样一个手段获取到了内部的值。

而这个方法内的局部方法func4就叫做闭包,按照很多书上的概念,这个方法搭建了方法内部与方法外部的桥梁,使得在外部也可以任意的获取到方法内部的资源。

notice:
但是闭包会造成变量在内存中持久占用,因此会有一定的性能问题,最好不要轻易使用,即便使用也要在恰当的实际进行释放。

原文博客地址:https://www.cnblogs.com/xing901022/p/4282503.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 闭包是可以用作函数参数和方法参数的代码块,是指有权访问另一个函数作用域中的变量的函数。因为在JS中,在另一个函数内...
    摘星_s阅读 720评论 0 1
  • 因果果真两个字,但是排序不同,会有一种天壤之别的感觉,一个是因为什么东西所以得到什么?这个是把目标放在比较靠后的一...
    CaryzhAo阅读 171评论 0 0
  • 橙橙,爸爸想给你讲一个故事: 有一个五岁的小男孩,出生在非常幸福的家庭,从小就生长在他的爸爸妈妈悉心的呵护与关爱之...
    flagwow阅读 359评论 0 0
  • 是不是真实的不重要,重要的是,你刚好看到我多诚恳,我刚好迎合你的想象和需要。
    米粉坨阅读 202评论 0 0
  • 不要患得患失不要闷闷不乐不要犹豫不决不要举步维艰不要点头哈腰不要贪慕虚名
    游天杰阅读 175评论 1 2