闭包
闭包:能访问到外部函数作用域中变量的函数 (原理:词法作用域 函数在声明时就已经确定了作用域,与调用位置无关)
使用场景:当我们需要隐藏一些不希望被别人访问的内容时,可以使用闭包 形成闭包的条件:
- 存在函数的嵌套
- 函数引用外部函数中的变量
- 内部函数要作为返回值返回
- 使用闭包需要占用一定的内存
- 相对于类来说,闭包占用内存空间大,(类可以使用原型,而闭包不能)
- 需要执行次数少时,使用闭包
- 需要执行次数多是,使用类
function outer(){
let num = 0
return ()=>{
num++
console.log(num)
}
}
const aa = new outer()