Javascript 闭包何时回收?

 2023-09-10 阅读 15 评论 0

摘要:定义 闭包是函数和声明该函数的词法环境的组合。闭包是指有权访问另一个函数作用域中的变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量。 范例 function fnTest(_i) {var i = _i;function fnAdd(

定义

闭包是函数和声明该函数的词法环境的组合。
闭包是指有权访问另一个函数作用域中的变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量。

范例

function fnTest(_i) {var i = _i;function fnAdd() {console.log(i++);}return fnAdd;
}
var fun = fnTest(100);
fun(); //100,i常驻内存
fun(); //101,i常驻内存
fun(); //102,i常驻内存
fun=null; // i被GC回收

javascript的垃圾回收原理

1. 在javascript中,如果一个对象不再被引用,那么这个对象就会被GC回收;
2. 如果两个对象互相引用,但不被第三者引用,那么这两个互相引用的对象会被回收。

js闭包的定义和用途,闭包优点

1. 可以将一个变量长期驻留在内存中
2. 模拟私有方法,避免受到全局变量的污染
在面向对象编程语言中,比如 Java,支持将方法声明为私有的,即它们只能被同一个类中的其它方法所调用。
而 JavaScript没有这种原生支持,但我们可以使用闭包来模拟私有方法。私有方法不仅仅有利于限制对代码的访问:还提供了管理全局命名空间的强大能力,避免非核心的方法弄乱了代码的公共接口部分。

闭包缺点

常驻内存,会增大内存使用量,使用不当容易造成内存泄露。

Javascript 闭包何时回收?

将不再使用的闭包实例手工删除

js闭包是什么、参考资料

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Closures
https://www.cnblogs.com/wangyingblog/p/5569745.html

转载于:https://www.cnblogs.com/jinzesudawei/p/8526197.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/32532.html

上一篇:杂项-EMS:CRM
下一篇:2.1 script 元素

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息