来自内存的JavaScript清除变量

时间:2016-06-01 08:30:48

标签: javascript memory

我正在为JS编写代码。 当我删除大对象时,我需要知道JS中的内存是如何工作的。

var a = new Object();
a.b = new Object();
a.b.c = new Object();
a.b.c.d = new Object(); 

a.b = undefined; // Is it delete a.b.c and a.b.c.d or not?

2 个答案:

答案 0 :(得分:4)

如果没有指向对象的指针,它将被垃圾收集。 由于唯一指向a.b.c的指针位于a.b,因此a.b.c将被垃圾收集。与a.b.c.d相同的情况。

答案 1 :(得分:4)

JavaScript自动被垃圾收集;只有当Garbage Collectior决定运行且对象符合条件时,才会回收对象的内存。

删除操作符或使对象无效(a.b = undefined;)与直接释放内存无关(它只通过断开引用间接进行)。有关详细信息,请参阅memory management页面。