闭包学习记录
闭包的详细介绍
闭包就是当内部函数被外部函数返回,且外部函数的变量被内部函数所引用,这就会形成闭包。内部函数可以访问外部函数的变量,但是外部函数不可以访问内部函数的变量,这样就可以做一个函数的封装。当外部调用内部函数时是通过外部函数来调用内部函数。但是在这个过程中,当内部函数引用了外部函数的变量时,这些变量不会随着外部函数的截止而被操作系统垃圾回收,会延长这些变量的一个生命周期。我的理解正确吗
闭包的作用
- 实现私有变量的封装:JavaScript 没有原生的 “私有变量” 语法(如类中的 private 关键字),但闭包可以模拟私有变量
- 保留函数状态:闭包可以 “记住” 函数创建时的环境变量,让函数在多次调用时共享同一个状态,适合需要累计数据、缓存结果等场景
- 隔离作用域:通过闭包隔离不同模块的变量,避免全局作用域污染。
缺点
- 内存占用增加:被闭包引用的变量不会被垃圾回收,长期保留可能造成内存泄漏
- 代码可读性降低:多层嵌套的闭包可能让逻辑变得复杂,需合理拆分
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Myskill-blog!