闭包再次理解 喜欢ヅ旅行 2022-11-08 05:59 147阅读 0赞 # 如何理解闭包? # 以前对于闭包的理解比较深刻了,时隔一段时间我对于闭包的理解又有点含糊,之前在一次面试中一位技术大佬问过我这个问题,我挺感谢他的,让我对这个问题重新思考了一下。 ![20210313104222147.png][] **在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。** ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1NtdGltZTgyNg_size_16_color_FFFFFF_t_70][] 例如,函数**push()**使用了变量 **count**,然而该变量并不是在函数push()中定义的。这种变量被称为***自由变量***。函数push()就是一个包含了自由变量的**开放函数。** 而函数 **makeCounter()**中为 count的名字和为0的值结合在了一起。这种给值绑定一个名字的操作叫做(名字)**约束。** 这样开放函数**push()**和 **makeCounter()**组合配套之后,无需在这以外的作用域中寻找变量的定义,从而达到了某种完备的状态。**通过这样表现出一种封闭的属性。** 随后,每当被调用时,函数push()的值就加1。 ## 简而言之: ## **闭包**是在另一个函数内部的函数,就是一个**内部函数**。 ![20210313111315455.png][] 这就是闭包,函数 inner()称为闭包函数。**闭包函数如此强大的原因在于它对作用域链的访问。** 从技术上讲,闭包有3个可访问的作用域: 1. **在它自身声明之内声明的变量;** 2. **对全局变量的访问;** 3. **对外部函数变量的访问,该属性使闭包变得非常强大**。 ### **总结:闭包有三个特性:** ### * 1.函数嵌套函数 * 2.函数内部可以引用外部的参数和变量 * 3.参数和变量不会被垃圾回收机制回收 ** 闭包的优点是:** * 1.变量被保存起来没有被销毁,随时可以被调用 * 2.只有函数内部的子函数才能读取局部变量,可以避免全局污染 ** 缺点是:** * 1.如果闭包使用不当,就会导致变量不会被垃圾回收机制回收,造成内存泄露 [20210313104222147.png]: /images/20221023/f6055b14e685425e9220d419620c3b8a.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1NtdGltZTgyNg_size_16_color_FFFFFF_t_70]: /images/20221023/8a7797201be34ccfb2d3d2c61687e3e5.png [20210313111315455.png]: /images/20221023/7b4b122415864d01ad69234bf23d9db4.png
相关 再次认识闭包 何为闭包 1)官方一点说,能够读取其他函数内部的局部变量的函数,即为闭包。 抓住几个点: 它自身是个函数 访问其他函数,即非自身函数内 局部变量 落日映苍穹つ/ 2023年06月06日 07:59/ 0 赞/ 39 阅读
相关 闭包再次理解 如何理解闭包? 以前对于闭包的理解比较深刻了,时隔一段时间我对于闭包的理解又有点含糊,之前在一次面试中一位技术大佬问过我这个问题,我挺感谢他的,让我对这个问题重新思考了一 喜欢ヅ旅行/ 2022年11月08日 05:59/ 0 赞/ 148 阅读
相关 闭包的理解 闭包的理解 什么是闭包 > 函数嵌套函数,内部函数就是闭包 > 正常情况下,函数执行完成,内部变量会销毁(销毁:释放内存空间) 特性: 内部函数没有执行完成, 偏执的太偏执、/ 2022年09月15日 05:39/ 0 赞/ 219 阅读
相关 闭包的理解 闭包就是一个函数引用另一个函数的变量,因为变量被引用着所以不会被回收,因此可以用来封装一个私有变量。这是优点也是缺点,不必要的闭包只会增加内存消耗。 https://www 墨蓝/ 2022年09月10日 04:27/ 0 赞/ 204 阅读
相关 深入理解闭包 一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之 叁歲伎倆/ 2022年07月12日 21:16/ 0 赞/ 245 阅读
相关 理解JS闭包 闭包,是 Javascript 比较重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,很难从定义去理解它。因此,本文直 喜欢ヅ旅行/ 2022年06月16日 12:09/ 0 赞/ 270 阅读
相关 js闭包理解 转载自:[https://blog.csdn.net/baidu\_33295233/article/details/79127733][https_blog.csdn.net 曾经终败给现在/ 2022年05月18日 04:27/ 0 赞/ 230 阅读
相关 理解 JavaScript 闭包 这是本系列的第 4 篇文章。 作为 JS 初学者,第一次接触闭包的概念是因为写出了类似下面的代码: for (var i = 0; i < helpText.len 浅浅的花香味﹌/ 2022年04月08日 13:42/ 0 赞/ 335 阅读
相关 理解闭包 一、闭包的概念 很多书籍上都将嵌套函数中内部函数使用外部函数中定义的局部变量,返回内部函数实现对外部函数局部变量的使用作为闭包的定义,但实际上我们可以将嵌套函数中这种闭包 青旅半醒/ 2022年02月15日 05:25/ 0 赞/ 338 阅读
相关 js闭包理解 1,js的链式作用域 \[html\] [view plain][] [copy][view plain] [![在CODE上查看代码片][CODE]][CODE_CODE 超、凢脫俗/ 2021年09月10日 11:00/ 0 赞/ 425 阅读
还没有评论,来说两句吧...