闭包
//闭包:函数嵌套函数,内部函数就是闭包
//正常情况下,函数执行完成,内部变量就会被销毁(释放内存空间)
//闭包:内部函数没有执行完成,外部函数变量不会被销毁
function outerFun() {
let name = ‘outer’
return function innerFun() {
console.log(name)
}
}
let fun = outerFun()
fun() //输出outer
闭包的应用
//应用:封装一段代码(封装模块module)减少全局变量
let module = (function () {
let a = 10
let b = 20
function add() {
console.log(a + b)
}
function sub() {
console.log(a – b)
}
return {
sub, //ES6语法属性命和值一致可以简写
add
}
})()
module.add()
module.sub()
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/280383.html