基本概念
什么是闭包?
简单的说,函数嵌套函数,内部函数就是闭包
function outerFun() {
function innerFun() {
}
}
此时innerFun()就是闭包
function outerFun() {
let a = 10;
function innerFun() {
console.log(a);
}
return innerFun();
}
let fun = outerFun();
fun();
正常情况下,函数执行完成,内部变量会销毁(释放内存空间)
闭包情况下, 内部函数没有执行完成,外部函数变量不会被销毁
闭包的应用
闭包可以封装一段代码,实现变量的私有化
let module = (function () {
let a = 10;
let b = 20;
function add() {
return a + b;
}
function sub() {
return a - b;
}
return {
add,
sub
}
})()
console.log(module.add());
console.log(module.sub());
闭包是JavaScript中一种重要的概念,它允许内部函数访问并保留外部函数的变量,即使外部函数已经执行完毕。这使得闭包成为实现变量私有化和内存管理的有效工具。例如,模块模式利用闭包封装变量和函数,创建不污染全局作用域的独立模块。在模块中,add和sub函数可以访问并操作封闭作用域内的a和b,但这些变量对外部世界不可见。
2万+

被折叠的 条评论
为什么被折叠?



