闭包:内层函数+引用的外层函数变量 作用:用外部函数把变量保护起来,实现数据的私有(让变量实现私有化) 附:外部可以使用这个变量,但是无法直接修改这个变量,因为这个变量(数据)是我私有的 用途:防抖、节流 影响:内存泄漏 附:(1)result是一个全局变量,代码执行完毕不会立即销毁 (2)result使用fn函数 (3)fn用到fun函数 (4)fun函数里面用到count (5)count被引用就不会被回收,所以一直存在
function fn(){
let count = 1
function fun(){
count++
console.log(`函数被调用${count}次`)
}
return fun
} const result = fn() result()//2 result()//3 闭包释放:result = null (增加:不一定用到return,不一定造成内存泄漏)