JavaScript 变量属于本地或全局作用域。
全局变量能够通过闭包实现局部使用(私有)
结论:
闭包概念:一个作用域有权访问另外一个作用域的局部变量
闭包作用:让一个变量的作用范围延伸,能够避免变量污染,让外部访问函数内部变量成为可能
例1
function father(){
let num = 1
return function son(){
console.log(num)
}
}
let er = father()
//console.log(re)
er()
上述代码,变量 er 接收一个函数调用,而这个函数调用的返回值也是一个函数,这样 er 也成为了函数,并且可以访问到变量 num ,这就形成了 JavaScript 闭包
闭包指的是有权访问父作用域的函数,即使在父函数关闭之后
例2
function father(){
let num = 1
return function son(){
num++
console.log(num)
}
}
let er = father()
//console.log(re)
er() // 2
er() // 3
er() // 4