说我用var
和new
实例化一个大对象。在完成之后,我可以通过将其设置为null
来“释放”它吗?这是什么JavaScript GC GC寻找?Javascript GC并将对象分配给null
1
A
回答
2
垃圾收集对对象感兴趣,它不被任何其他对象引用。因此,请确保您的应用程序中没有任何引用(数组等)
+0
https://www.youtube.com/watch?v=RWmzxyMf2cE这是Colt McAnlis关于Javascript和GC的一个很好的“会议”。很有趣:) –
1
您可以通过将变量设置为null
来打破参考,但不会破坏任何其他参考。
所有引用都需要在可以GC对象之前单独打破。
所以是的,如果对该变量所持有的对象的唯一引用,那么将其设置为null
将使其最终GC释放它。
0
因为我没有说明,您需要中断所有引用以使变量符合垃圾回收的条件。如果您无法追查最后一次引用特定对象,这可能是一项艰巨的任务,因此请使用可用于此任务的工具。我个人使用Chrome的堆分析器,你可以阅读关于in the chrome docs。
此外,请注意,只有非基元类型通过引用传递(因此只有非基元类型可以GC'd)。
相关问题
- 1. 将对象分配给button.tag
- 2. 将一个对象分配给另一个对象并返回对象并将其分配给另一个在javaScript中的对象之间有什么区别?
- 3. 将保留对象分配给弱属性;对象将分配
- 4. 将对象分配给对象Java
- 5. JavaScript:将对象分配给另一个对象
- 6. Java:解析NumberFormat对象并将其分配给Number对象
- 7. 将null分配给XMLGregorianCalendar
- 8. 对象是否可以自动分配给第二代GC?
- 9. 将ID分配给结构对象
- 10. Java将值分配给数组/对象
- 11. 解析json对象并将其分配给数组
- 12. 查询SQL,并将其分配给JavaScript
- 13. 将对象分配给每个var
- 14. 如何将值分配给JSON对象
- 15. jQuery将DOM元素分配给对象
- 16. 将JSON对象值分配给变量
- 17. 将对象分配给指针C++
- 18. 将对象分配给字符串
- 19. 将堆对象分配给std :: map
- 20. 将项目分配给对象字典
- 21. 如何将对象分配给字段
- 22. 将n维数组分配给对象
- 23. OGNL/Struts2 JSP将bean分配给对象
- 24. 如何将“int”分配给对象?
- 25. 将对象数组分配给DataGrid
- 26. 无法将新值分配给Javascript中的对象
- 27. 如何将子对象分配给JavaScript中的变量?
- 28. 如何将多个值分配给JavaScript对象?
- 29. 将索引号分配给JavaScript对象键
- 30. 扩展一个对象并将其分配给它的父代
这可能会帮助您:http://stackoverflow.com/a/742666/1249581。 – VisioN
只要尽量限制其范围,如果真的需要使用'delete'。 –
@d_inevitable'delete'删除对象的引用,但不删除对象本身。但是,如果删除引用,则GC将更快地了解无用的对象数据。 – VisioN