什么是闭包
简单理解就是,函数包含函数,内部函数就是闭包
//简单理解就是,函数包含函数,内部函数就是闭包
function outFun(){
let a = 20
function innerFun(){
console.log(a);
}
return innerFun
}
//控制台打印了变了20,证明可以获取函数内部变量,内部函数没有执行完不会释放变量a占用的内存空间
let getA = outFun()
闭包的主要应用就是模块化
如下就是实现一个test模块化,a和b变量可以内部函数访问。
// 应用 模块化
let test = (function () {
let a = 1
let b = 2
function add() {
return a + b
}
function sub() {
return a - b
}
return {
add,
sub
}
})() // ()表示声明的时候直接调用
let res1 = test.add()
let res2 = test.sub()