闭包

102 阅读1分钟

定义

有权访问函数内定义的变量

两种表现形式

  1. 返回一个函数
  2. 函数作为参数传入
// 返回一个函数
function foo(){
    let name = 'li'
    return function(){
        console.log(name)
    }
}
let a = foo()
a() // 输入li
// 函数作为参数传入

用途

  1. 可以读取到函数内部的变量
  2. 让变量始终保存在内存中

缺点

闭包中的所有变量都会保存在内存中, 内存消耗大, 网页会有性能问题, 容易造成内存溢出

解决办法就是, 退出函数之前, 将不适用的变量清除