定义
有权访问函数内定义的变量
两种表现形式
- 返回一个函数
- 函数作为参数传入
// 返回一个函数
function foo(){
let name = 'li'
return function(){
console.log(name)
}
}
let a = foo()
a() // 输入li
// 函数作为参数传入
用途
- 可以读取到函数内部的变量
- 让变量始终保存在内存中
缺点
闭包中的所有变量都会保存在内存中, 内存消耗大, 网页会有性能问题, 容易造成内存溢出
解决办法就是, 退出函数之前, 将不适用的变量清除