我知道,JavaScript有一个垃圾收集器。 为此,使用delete删除只对对象的引用,当没有更多的参考这个对象,它是由GC删除。
JavaScript是棘手的,与封锁,模糊名称空间和原型继承,它并不总是显而易见的,知道什么时候到现在为什么。
我编码一个相当大的Javascript项目,并想避免内存泄漏,同时限制全局内存使用情况。 我不是在所有优化阶段(让我们的东西工作第一:-)),但它会很高兴知道,以避免编写蹩脚的代码的内存管理的良好做法。
- 所以,当我应该使用删除 ?
- 什么是陷阱,我应该避免,使用对象?
- 有些东西知道关闭?
- 一些好的做法,突出?
从我的经验,垃圾收集器是井/取决于浏览器执行不力。 运用良好的面向对象的编程习惯是一个好的开始。
我唯一的建议是: 不要通过连接DOM和内存泄漏的JavaScript对象 (即不会被DOM和JS的GC被清除循环引用)。 这些错误会吃比你将你的应用程序中实例化的任何对象远远更多的内存。
在DOM / JS内存泄漏的更多细节。 http://msdn.microsoft.com/en-us/library/bb250448%28VS.85%29.aspx
我认为,通过将数据存储在DOM节点,你可以轻松地创建循环引用,并非所有浏览器都可以处理。 例如:
this.element = document.getElementById('something');
this.element.attachedObject = this;