JavaScript 中 的闭包问题
闭包函数:能够访问其他函数内部变量的函数; 简单理解:声明在一个函数中的函数,叫做闭包函数;
闭包:内部函数总是可以访问其所在的外部函数中声明的参数和变量,即使在其外部函数被返回(寿命终结)了之后。
闭包的特点:
- 让外部访问函数内部变量成为可能
- 局部变量会常驻内存中
- 可以避免使用全局变量,防止全局变量污染
- 会造成内存泄露(有一块内存被长期占用,得不到释放)
例如:
function myFun(){
var num = 0;
function getNum(){
num++;
console.log(num);
}
return getNum;
}
var getNum1= myFun(); //每次外部函数执行的时候,外部函数的地址不同,都会重新创建一个新的地址
getNum1(); // 1
getNum1(); // 2
getNum1(); // 3
var getNum2 = myFun();
getNum2(); // 1
getNum2(); // 2
getNum2(); // 3
// getNum 函数常驻内存,并且 myFun 的变量也没有被销毁,可以被外部访问
为了更好的理解闭包,附上一个神奇的链接:学习Javascript闭包--阮一峰
分类:
JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律