闭包的理解

发布时间:2026/6/27 2:14:35

闭包的理解 一、理解函数 A 内部定义了函数 B函数 B 访问了 A 内部的局部变量函数 B 被外部使用就形成闭包。闭包 内部函数 外部函数的作用域局部变量内部函数会牢牢留住外层变量外层函数执行完变量不会销毁。二、底层原理作用域链 垃圾回收机制作用域规则内部函数可以访问外层函数的变量外层不能访问内部正常情况普通函数执行完毕栈销毁内部局部变量会被 GC 垃圾回收释放闭包特殊点如果内部函数被外部引用浏览器会保留外层函数的变量环境不会回收形成封闭的私有环境这就是 “闭包”。三、闭包三大核心作用保存私有变量封装外部无法直接修改变量只在函数内部全局拿不到只能通过内部函数读写控制数据安全。延长变量生命周期普通函数执行完变量销毁闭包可以让变量长期保存在内存实现计数、缓存。模块化、柯里化、回调 / 定时器常用定时器、延时器、事件监听、forEach 回调全部基于闭包。四、闭包优缺点优点实现私有变量封装数据延长变量生命周期做缓存、计数器实现柯里化、高阶函数、模块化开发。缺点面试高频内存泄漏闭包会长期持有变量占用堆内存如果不手动释放页面销毁前不会回收内存占用变大大量使用会降低性能容易造成意外的数据污染多个实例共用同一个私有变量。解决内存泄漏手动切断引用极简记忆口诀内层函数引用外层局部变量内层暴露到外部使用 闭包锁住外层变量不销毁可做私有封装但容易内存泄露。

相关新闻