闭包的优缺点

闭包的优缺点闭包的好处有 1 缓存 2 面向对象中的对象 3 实现封装 防止变量跑到外层作用域中 发生命名冲突 4 匿名自执行函数 匿名自执行函数可以减小内存消耗 闭包的坏处 1 内存消耗 通常来说 函数的活动对象会随着执行期上下文一起销毁 但是 由于闭包引用另外一个函数的活动对象 因此这个活动对象无法被销毁 这意味着 闭包比一般的函数需要更多的内存消耗 尤其在 IE 浏览器中需要关注 由于 IE 使用非原生 javascript 对象实现 DOM 对象 因此闭包会导致内存泄露问题

 闭包的好处有:

  1.缓存

  2.面向对象中的对象

  3.实现封装,防止变量跑到外层作用域中,发生命名冲突

  4.匿名自执行函数,匿名自执行函数可以减小内存消耗

 

  闭包的坏处:

  1.内存消耗

  通常来说,函数的活动对象会随着执行期上下文一起销毁,但是,由于闭包引用另外一个函数的活动对象,因此这个活动对象无法被销毁,这意味着,闭包比一般的函数需要更多的内存消耗。尤其在IE浏览器中需要关注。由于IE使用非原生javascript对象实现DOM对象,因此闭包会导致内存泄露问题,例如:

  [javascript] view plain copyfunction A(){

  var a=document.createElement(“div”),//

  msg=“Hello”;

  a.οnclick=function(){

  alert(msg);

  }

  }

  A();

  以上的闭包会在IE下导致内存泄露,假设A()执行时创建的作用域对象ScopeA,ScopeA引用了DOM对象a,DOM对象a

  引用了function(aleert(msg)),函数function(alert(msg))引用了ScopeA,这是一个循环引用,在IE会导致内存泄露。

  2.性能问题

  使用闭包时,会涉及到跨作用域访问,每次访问都会导致性能损失。

  因此在脚本中,最好小心使用闭包,它同时会涉及到内存和速度问题。不过我们可以通过把跨作用域变量存储在局部变量中,然后直接访问局部变量,来减轻对执行速度的影响。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209778.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午8:26
下一篇 2026年3月19日 上午8:26


相关推荐

  • eMule 站点收集[通俗易懂]

    eMule 站点收集[通俗易懂]http://www.simplecd.org/http://qvocd.com/http://www.ied2k.com/http://www.thshare.net/http://www.eastgame.nethttp://www.chnp2p.com/http://www.hatrix.org/http://www.emule-ed2k.com/htt…

    2022年7月15日
    20
  • 网络分析最佳路径_局域网找不到网络路径

    网络分析最佳路径_局域网找不到网络路径网络分析——路径分析一、实验背景在远距离送货,物资派发、急救服务和邮递等服务中,经常需要在一次行程中同时访问多个站点(收货方、邮件主人、物资储备站等),如何寻找到一个最短和最经济的路径,保证访问到所有站点,同时最快最省地完成一次行程,这是很多机构遇到的问题。为解决这类问题,我们需要学习基于ArcGIS网络分析功解决实际路径问题,掌握网络分析基本技能。二、实验内容根据不同的要求,获得到达指…

    2022年8月24日
    11
  • MATLAB矩阵复制及扩充

    MATLAB矩阵复制及扩充文章目录一、repmat()方法二、Kron()方法一、repmat()方法例一:(行方向和列方向分别平铺矩阵,红框2,3表示平铺倍数)TIPS:【原矩阵】处可用用户自定义的矩阵变量代替   即Mat=[123;456],可用Mat替代function中原矩阵的位置例二:(行方向和列方向分别平铺矩阵,红框2,3表示平铺倍数)例三:(列方向平铺矩阵,红框2表示平铺矩阵的倍数)例四:(行方向平铺矩阵,红框3表示平铺矩阵的倍数)二、Kron()方法kron(A,B)

    2022年6月25日
    171
  • pycharm配置解释器无效的python sdk(不知道为什么的速进)

    pycharm配置解释器无效的python sdk(不知道为什么的速进)pycharm 配置解释器无效的 pythonsdk 不知道为什么的进来

    2026年3月27日
    1
  • 补码

    补码

    2021年12月14日
    61
  • 51单片机4种流水灯

    51单片机4种流水灯4种流水灯:1、先从右到左逐个亮灭;再从左到右逐个亮灭;2、由两侧向中间,再中间向两侧亮灭;3、先右再左逐个亮起,不熄灭;再从左到右逐个熄灭;4、先左再右逐个亮起,不熄灭;再从右到左逐个熄灭;

    2022年5月1日
    56

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号