Javascript中的垃圾收集
garbage collection in Javascript
本文关键字:Javascript 更新时间:2023-09-26
考虑这个多层嵌套的JavaScript对象。
function foo() {
var channels = {
2: {
name: "station 1",
description: "station1",
img: ["img1-a", "img1-b", "img1-c"]
},
3: {
name: "station 2",
description: "station2",
img: ["img2-a", "img2-b", "img2-c"]
},
4: {
name: "station 3",
description: "station3",
img: ["img3-a", "img3-b", "img3-c"]
},
};
console.log(channels);
};
....
// calling foo.
foo();
函数foo()
返回后,所有嵌套的对象(即单个通道对象、字符串、数组img和img数组中的字符串)是否都会被自动垃圾收集?
或者,我需要显式地遍历并"删除"每个对象吗?
取决于console.log
中发生的情况。当然,在Chrome中,对channels
对象的引用保留在控制台中,因此channels
不能是GC’d。
删除console.log
时,完整的channel
对象将正确地进行GC处理,因为没有其他引用。
只要没有其他引用它们,它们就有资格获得GC。
它们应该是,是的,因为不再有对channels
对象的引用,也没有包含它的闭包。
GC主要依赖于实现它的浏览器,所以不能保证它真的会实现。然而,delete
对每个元素的处理都是过度的。
Javascript有自己的垃圾收集器,由浏览器的引擎(v8或其他版本)实现。您不必取消分配引用。一旦根超出范围,它们都将有资格使用gc。
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在JavaScript中将字符串转换为函数引用
- 模糊事件的Javascript测试
- Javascript更改图标
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用WCF服务和javascript表单post上传.doc文件
- javascript结合了数组和字典
- 这是什么 ==- javascript 运算符
- 从javascript创建一个列表
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Javascript:selenium Web驱动程序isDisplayed()不工作
- 如何通过ajax刷新JSF填充的javascript变量
- 如何在Javascript中将JSon对象转换为数组
- Javascript生成的表单未提交
- 使用javascript将动态表从一个html页面打印到另一个html页
- 通过javascript重定向html传递php变量