闭包的玩法
2023-02-25 18:27:41 时间
闭包概念
闭包是指有权访问另一个函数作用域中的变量的函数 ——《JavaScript高级程序设计》
由于js的垃圾回收机制,函数执行完,函数内部的变量一律会被销毁。但是有某些特定的需求又需要我们保存这种变量。那么要用到闭包了
产生闭包的方法
由于函数执行完,内部变量会被销毁,无法直接从外部访问。所以在函数内部return一个函数,被return的函数里面再return需要被保存的变量。 这样js就会认为这个变量还在被使用,无法被销毁。像是卡了一个bug一样。
闭包小案例
请使用闭包定义一个函数,实现每次调用这个函数,返回值都比上次+1
1 const getCount = () => {
2 let count = 0
3 //return一个函数,函数里再return函数内部的变量,产生闭包
4 return () => {
5 return count++
6 }
7 }
8
9 const newCount = getCount()
10
11 console.log(newCount());//0
12 console.log(newCount());//1
13 console.log(newCount());//2
14
闭包优点:
- 能够访问函数的局部作用域(阻止内部变量被回收)
- 私有化变量
- 模拟块级作用域
闭包缺点:
- 闭包比普通函数更消耗内存,过多使用容易造成内存泄漏
相关文章
- 老软件Winamp突然发布新版!回忆Winamp的兴衰
- Gitea 的邮件通知
- 尚医通-项目概述
- 嵌入式:ARM 汇编控制伪操作
- 阿里云服务器安全中心发现后门(Webshell)文件解决方法
- 最值得收藏的 Web 开发资源荟萃
- 人生学识 - 我的闪存
- 海口个体营业执照怎么网上申请?
- 尚医通-搭建环境
- 华为天才少年做了把模块化机械键盘 震撼极客圈:这才是真客制化
- 1元水消失背后 康师傅被挤出前三甲:农夫山泉等狂涨价!纯净水健康吗?
- 尚医通-后台接口
- 电力十足!大概是全网最详细的无线充电介绍了
- 元宇宙 - 圈里的百科
- Golang 泛型实现类型转换
- 苹果开发常用的软件工具汇总
- 十大经典排序算法
- Chrome 为开源 Web 框架与开发工具捐赠 50 万美元
- 可PWM调光或线性调光 电流可变动的一款车灯方案
- 尚医通-预约挂号