我知道 JavaScript 有一个垃圾收集器。因此,使用delete仅删除对该对象的引用,当不再有对该对象的引用时,它就会被GC删除。
JavaScript 很棘手,因为有闭包、模糊的命名空间和原型(prototype)继承,所以并不总是很明显知道什么时候开始或为什么。
我正在编写一个相当大的 JavaScript 项目,希望避免内存泄漏,同时限制全局内存使用。我根本没有处于优化阶段(让我们先让这些东西工作起来:-)),但最好了解内存管理的良好实践,以避免编写蹩脚的代码。
- 那么我什么时候应该使用删除?
- 我应该避免哪些陷阱, 使用对象?
- 有关闭包的一些知识?
- 有哪些值得强调的良好做法?
最佳答案
根据我的经验,垃圾收集器的实现好坏取决于浏览器。应用良好的面向对象编程实践是一个好的开始。
我唯一的建议:不要通过连接 DOM 和 javascript 对象造成内存泄漏(不会被 DOM 和 JS GC 清除的循环引用)。这些错误将消耗比您在应用程序中实例化的任何对象更多的内存。
有关 DOM/JS 内存泄漏的更多详细信息。 http://msdn.microsoft.com/en-us/library/bb250448%28VS.85%29.aspx
关于JavaScript 内存管理陷阱?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1519114/