JavaScript的闭包

51 阅读1分钟

闭包

闭包:能访问到外部函数作用域中变量的函数 (原理:词法作用域 函数在声明时就已经确定了作用域,与调用位置无关)

使用场景:当我们需要隐藏一些不希望被别人访问的内容时,可以使用闭包 形成闭包的条件:

  1. 存在函数的嵌套
  2. 函数引用外部函数中的变量
  3. 内部函数要作为返回值返回
  • 使用闭包需要占用一定的内存
  • 相对于类来说,闭包占用内存空间大,(类可以使用原型,而闭包不能)
  • 需要执行次数少时,使用闭包
  • 需要执行次数多是,使用类
function outer(){
    let num = 0
    return ()=>{
        num++
        console.log(num)
    }
}
const aa = new outer()