当前位置: 首页 > news >正文

前端理论总结(js)——闭包和内存泄漏

闭包

什么是闭包?

函数内部和函数外部连接起来的桥梁,可以在一个内层函数中访问到其外层函数的作用域

为什么要用

封装变量
收敛权限
临时变量持久化

优点

  1.保护函数内的变量安全    
 2.在内存中维持一个变量(用的太多就变成了缺点,占内存) ;    
 3. 逻辑连续,当闭包作为另一个函数调用的参数时,避免你脱离当前逻辑而单独编写额外逻辑。    
 4. 方便调用上下文的局部变量。    
 5. 加强封装性,可以达到对变量的保护作用。

缺点

1.常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。   
2.还有有一个非常严重的问题,那就是内存浪费问题,这个内存浪费不仅仅因为它常驻内存,更重要的是,对闭包的使用不当会造成无效内存的产生。 

内存泄漏

什么是内存泄漏?

本质上,内存泄漏可以定义为:应用程序不再需要占用内存的时候,由于某些原因,内存没有被操作系统或可用内存池回收。

阻止内存泄漏的方法

1. 及时释放不再使用的对象或资源
2. 避免创建循环引用
3. 注意闭包和事件监听器中的引用关系
4. 使用工具进行内存泄漏检测
5. 合理使用缓存和数据结构

减少内存泄漏的方法

1. 及时释放不再使用的对象或资源
2. 避免创建不必要的全局变量
3. 避免频繁创建大量临时对象
4. 使用合适的数据结构和算法
5. 定期进行内存泄漏排查和优化

ヾ( ̄▽ ̄)Bye~Bye~

http://www.lryc.cn/news/326514.html

相关文章:

  • PHP页面如何实现设置独立访问密码
  • M1 mac安装 Parallels Desktop 18 激活
  • 嵌入式学习46——硬件相关2串口通信
  • 企业产品网络安全建设日志3月20
  • BRICK POP展示了有趣的链上游戏玩法与奖励
  • jetcache 2级缓存模式实现批量清除
  • 【MD】激光驱动原子动力学的全尺寸从头算模拟
  • 访问者模式(数据与行为解耦)
  • LeetCode:1319. 连通网络的操作次数(并查集 Java)
  • C++ STL教程
  • 系列学习前端之第 6 章:一文掌握 jQuery(熟悉即可)
  • python 中判断文件、目录是否存在的方法
  • Redis的安装与启动
  • WebGIS航线编辑器(无人机航线规划)
  • STEP 格式三维模型读取
  • Mora: Enabling Generalist Video Generation via A Multi-Agent Framework
  • [c++] 自写 MyString 类
  • 三、阅读器开发--4、阅读器目录、全文搜索功能开发
  • AMEYA360代理 | 江苏长晶科技FST2.0高性能 IGBT产品介绍
  • 基于springboot+vue+Mysql的网上图书商城
  • 阿里云服务器多少钱一个月?低至5元1个月
  • LeetCode第五天(442. 数组中重复的数据)
  • chatgpt正面案例合集
  • 今日讲讲路由配置
  • 【Rust】Shared-State Concurrency
  • 连接数据库(MySQL)的JDBC
  • golang通过参数控制HTTP server是否使用基本认证
  • javaSwing坦克大战游戏
  • 【面试题】数据底层原理:Elasticsearch写入流程解析
  • 牛客论坛spring initializer选用的构件