欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > 前端知识点---闭包(javascript)

前端知识点---闭包(javascript)

2025/11/3 21:03:38 来源:https://blog.csdn.net/2302_80171619/article/details/147053291  浏览:    关键词:前端知识点---闭包(javascript)

文章目录

  • 1.怎么理解闭包?
  • 2.闭包的特点
  • 3.闭包的作用?
  • 4 闭包注意事项:
  • 5 形象理解

1.怎么理解闭包?

函数里面包着另一个函数,并且内部函数可以访问外部函数的变量。

<script>function outer(){let count =0return functioninner (){count++console.log("count为:"+count);}}let fn=outer()fn()fn()fn()
</script>

在这里插入图片描述

📌 关键点:

  • inner() 是闭包,它能访问 outer() 作用域里的 count。

  • 每次调用 fn(),count 的值都会保留,不会重置。

2.闭包的特点

特点说明
访问外部变量内部函数能访问外部函数的变量
变量不会消失外部函数执行完后,变量不会被销毁,因为被内部函数“记住”了
常用于记忆数据比如计数器、缓存、封装数据等

3.闭包的作用?

封闭数据,实现数据私有,外部也可以访问函数内部的变量

做缓存/记忆功能

在异步代码中保存上下文

4 闭包注意事项:

闭包会占用内存,变量不会被回收,要小心内存泄漏。

不要滥用闭包,大量使用可能影响性能。

5 形象理解

你开了一家面馆:

function 开饭店() {let 秘方 = "老坛酸菜配方"; // 这是私密变量,别人不能直接拿走return function 厨师() {console.log("我记得老板的秘方是:" + 秘方);};
}let 厨师小王 = 开饭店(); // 开店完,返回了一个记得秘方的厨师

🍽️ 每次叫他做菜:

厨师小王(); // 我记得老板的秘方是:老坛酸菜配方
厨师小王(); // 我记得老板的秘方是:老坛酸菜配方

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词