当前位置:网站首页>什么是闭包?
什么是闭包?
2022-08-01 13:56:00 【mrcsunflower】
闭包:函数嵌套函数,内部函数就是闭包。
<script>
function outerFun() {
let a = 10;
function innerFun() {
console.log(a);
}
return innerFun;
}
let fun = outerFun();
fun();
</script>正常情况下:函数执行完成,内部变量会销毁(释放内存空间)。
闭包:内部函数没有执行完成,外部函数变量不会被销毁。
应用:封装代码,实现模块化
<script>
let module = (function () {
let a = 10;
let b = 20;
function add() {
return a + b;
}
function sub() {
return a - b;
}
return {
add,
sub
}
})() //立即执行函数,声明时直接调用
let result1 = module.add();
let result2 = module.sub();
console.log(result1);
console.log(result2);
</script>边栏推荐
- sql is not null 优化(oracle语句索引优化)
- Batch replace tables in Word with pictures and save
- shell 中的 分发系统 expect脚本 (传递参数、自动同步文件、指定host和要传输的文件、(构建文件分发系统)(命令批量执行))
- 求方阵的无穷范数「建议收藏」
- LeetCode_位运算_简单_405.数字转换为十六进制数
- tensorflow2.0 handwritten digit recognition (tensorflow handwriting recognition)
- 响应式2022英文企业官网源码,感觉挺有创意的
- 什么是元编程
- 脚本语言Lua的基础知识总结
- 消息中间件解析 | 如何正确理解软件应用系统中关于系统通信的那些事?
猜你喜欢
随机推荐
嵌入式开发:创建和使用可移植类型的7个技巧
魔众短链接系统 v3.9.0
【每日一题】592. 分数加减运算
uniapp读取和写入文件
Yann LeCun开怼谷歌研究:目标传播早就有了,你们创新在哪里?
50W+小程序开发者背后的数据库降本增效实践
AtCoder Beginner Contest 261 D - Flipping and Bonus
高仿项目协作工具【Worktile】,从零带你一步步实现组织架构、网盘、消息、项目、审批等功能
【每日一题】1161. 最大层内元素和
软件测试之发现和解决bug
什么是混合元编程
牛客刷SQL--6
Gradle series - Gradle tests, Gradle life cycle, settings.gradle description, Gradle tasks (based on Groovy documentation 4.0.4) day2-3
热心肠:关于肠道菌群和益生菌的10个观点
2022-07-25 网工进阶(二十一)BGP-路由反射器、联盟、聚合
PAT 1162 Postfix Expression(25)
The little thing about Request reuse.The research is understood, and I will report it to you.
求方阵的无穷范数「建议收藏」
Batch replace tables in Word with pictures and save
【码蹄集新手村600题】判断一个数字是否为完全平方数









