Javascript GC并将对象分配为null

时间:2012-06-02 17:41:27

标签: javascript memory-management garbage-collection

假设我使用varnew实例化一个大对象。在我完成它之后,我可以通过将其设置为null来“释放”它吗?这是Javascript GCs寻找的东西吗?

3 个答案:

答案 0 :(得分:2)

垃圾收集对任何其他对象未引用的对象感兴趣。因此,请确保应用程序中的任何位置都没有引用(数组等)

答案 1 :(得分:1)

您可以通过将变量设置为null来中断引用,但不会破坏任何其他引用。

在对象可以GC之前,所有引用都需要单独分解。

所以,是的,如果对该变量所持有的对象的唯一引用,则将其设置为null将为最终GC释放它。

答案 2 :(得分:0)

因为我没有说明,你需要打破所有引用,以便变量有资格进行垃圾收集。如果您无法追踪对特定对象的最后一次引用,则这可能是一项艰巨的任务,因此请使用可用的工具执行此任务。我个人使用Chrome的堆配置文件,您可以阅读in the chrome docs

另外,请注意,只有非原始类型通过引用传递(因此只有非原始类型可以进行GC)。