JavaScript 清除内存中的变量

ask*_*eet 2 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?
Run Code Online (Sandbox Code Playgroud)

drz*_*hbe 5

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


Vla*_*nut 5

JavaScript 会自动进行垃圾回收;仅当垃圾收集器决定运行并且该对象符合条件时,才会回收该对象的内存。

删除运算符或使对象无效( ab = undefined; )与直接释放内存无关(它只是通过破坏引用间接释放内存)。有关更多详细信息,请参阅内存管理页面)。