当前位置:网站首页>什么是闭包?
什么是闭包?
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>
边栏推荐
- ABC260 E - At Least One(双指针)
- E - Red and Blue Graph (Combinatorics)
- 50W+小程序开发者背后的数据库降本增效实践
- 拥抱NFV,Istio 1.1 将支持多网络平面
- Efficiency tools to let programmers get off work earlier
- The little thing about Request reuse.The research is understood, and I will report it to you.
- A Beginner's Guide to Performance Testing
- 关于Request复用的那点破事儿。研究明白了,给你汇报一下。
- DDL和DML的含义与区别「建议收藏」
- Istio Pilot代码深度解析
猜你喜欢
随机推荐
树和二叉树的转换
【5GC】5G网络切片与5G QoS的区别?
超全!全国近90所大学考研报录比汇总!
全链路灰度在数据库上我们是怎么做的?
易优压双驱挖掘机压路机器类网站源码 v1.5.8
Qt实战案例(56)——利用QProcess实现应用程序重启功能
opencv 保存图片imwrite
【每日一题】1331. 数组序号转换
使用ffmpeg来查看视频的信息,fps,和width,height
NebulaGraph v3.2.0 性能报告
iframe tag attribute description detailed [easy to understand]
tensorflow2.0手写数字识别(tensorflow手写体识别)
A Beginner's Guide to Performance Testing
透过开发抽奖小程序,体会创新与迭代
NebulaGraph v3.2.0 Performance Report
PanGu-Coder:函数级的代码生成模型
leetcode:1201. 丑数 III【二分 + 数学 + 容斥原理】
性能优化——粒子优化笔记
【每日一题】593. 有效的正方形
[LiteratureReview]Optimal and Robust Category-level Perception: Object Pose and Shape Estimation f