个人网站上线欢迎来仿 https://zihanzy.com

我们知道闭包延展了局部变量的生命周期,使得外部操作局部变量成为可能,一般来讲函数在调用执行后函数就会被释放,但如果函数中产生了闭包,就会导致函数执行完毕后,函数内部的局部变量没有被释放,使得占用内存时间会变长,容易造成内存泄漏。

解决办法
1.能不用闭包就不用
2.及时释放

如下例

function fn1(){var arr = new Array[100000]function fn2(){console.log(arr.length)}return fn2
}
var f = fn1()
f()


函数执行后在创建了10万长度的数组存储在内存中,我们在调用后并没有对函数进行手动释放造成了内存的浪费

解决办法

var f = fn1()
f()
f = null //让内部函数成为垃圾对象,从而回收闭包

内存溢出与内存泄漏

内存溢出
1.一种程序运行出现的错误
2.当程序运行需要的内存超出了剩余的内存时,就会报错内存溢出的错误

var obj = {}
for (var i = 0 ;i < 10000;i++){obj[i] = new Array(1000000)console.log('--')
}
593910:0> 个人网站上线欢迎来仿 https://zihanzy.com

闭包的缺点与解决办法相关推荐

  1. java 时间戳_Java并发编程之CAS三CAS的缺点 及解决办法

    Java并发编程之CAS第三篇-CAS的缺点 通过前两篇的文章介绍,我们知道了CAS是什么以及查看源码了解CAS原理.那么在多线程并发环境中,的缺点是什么呢?这篇文章我们就来讨论讨论 本篇是<凯 ...

  2. JS中for循环里面的闭包问题的原因及解决办法

    JS中for循环里面的闭包问题的原因及解决办法 参考文章: (1)JS中for循环里面的闭包问题的原因及解决办法 (2)https://www.cnblogs.com/ZinCode/p/555190 ...

  3. 使用hibernate与mysql时数据不能插入的原因及解决办法

    1.背景 之前从没用过hibernate,因此在网上搜了一下hibernate快速入门方面的信息,最后我按照<Myeclipse Hibernate 快速入门 中文版>(CSDN,百度文库 ...

  4. JavaScript跨域总结与解决办法

    JavaScript跨域总结与解决办法 什么是跨域 1.document.domain+iframe的设置 2.动态创建script 3.利用iframe和location.hash 4.window ...

  5. [Android]_[初级]_[sdk docs reference api 文档打开慢的解决办法]

    此题正解:打开firefox, 选中菜单 File->Work Offline,之后打开api文档都是秒开了,缺点就是不能访问在线的网址. 默认菜单是隐藏的,可以移动到Tab页空白处右键Menu ...

  6. php自动停止原因,解析mysql自动停止服务解决办法

    我想很多朋友都有碰到过mysql服务器突然自动停止或又会自动启动吧,下面我们来分析一下原因与停止的解决办法: 分析原因一:Mysql的自动备份功能可能导致在备份的时候先关闭服务,而在此启动的时候服务器 ...

  7. java手机界面太小_手机端页面在项目中遇到的一些问题及解决办法

    原标题:手机端页面在项目中遇到的一些问题及解决办法 来源:键盘上的眼泪 segmentfault.com/a/1190000015178877 1.解决页面使用overflow: scroll在iOS ...

  8. ios 静态库冲突的解决办法

    参考:http://www.cnblogs.com/machao/p/5288460.html ios 静态库冲突的解决办法 最近在做一个 iOS 的 cocos2d-x 项目接入新浪微博 SDK 的 ...

  9. C#Excel文件读取问题及解决办法

    最近由于工作上用到了读取Excel操作,完成过程中遇到了各种各样的问题,最后为了以后读取Excel时不再如此的麻烦,特意做成了一个小组件,方便日后使用.现在总结一下过程中遇到的问题及相应的解决办法. ...

最新文章

  1. SVD(奇异值分解)小结
  2. 阿里达摩院再造AI抗疫技术:20秒判读CT影像,识别准确率达96%,河南率先启用...
  3. OpenCL异构并行计算编程笔记(1):平台、设备与上下文
  4. python进阶资源整理
  5. 【Python】函数调用外部变量
  6. 训练一个神经网络 能让她认得我
  7. 我们要的是社会主义!
  8. 计算机网络(六)——连接到Internet
  9. 仿生尺蠖机器人_【小小科学家】六脚爬行机器人
  10. 华为达芬奇架构到底好在哪里?
  11. RC4算法及其实践(Hello Password)
  12. Android冷启动优化解析
  13. 参观云栖小镇体会_40个绝美小镇
  14. 【工具使用】Keil5软件使用-基础使用篇
  15. 使用ADB卸载Android内置应用
  16. 相关常用单位转换 mil 英里 英尺 .......
  17. 易语言MYQQ框架群管机器人如何获取用户信息
  18. 如何解决EV3陀螺仪传感器漂移问题
  19. 一个操作系统的实现(8)进程间通信
  20. python利用浏览器执行js_浏览器如何执行JS

热门文章

  1. android逆向学习笔记,小肩膀安卓逆向百集-学习笔记
  2. 从零实现深度学习框架——Seq2Seq从理论到实战【实战】
  3. 2019-01-18-Python爬取猫眼电影排行榜
  4. 鸿蒙OS应用开发之——页面布局StackLayout
  5. 22.9.18——论坛
  6. SMS短消息PDU介绍
  7. 大数据看长沙楼市走势
  8. python学习与疑问_1
  9. MicroDicom viewer相关
  10. Java基础总结(内部版)