JavaScript,没有引用的对象实例

时间:2012-04-28 14:25:10

标签: javascript object memory-management reference instance

我曾经使用new关键字创建我的JavaScript“类”的实例,并调用构造函数,如:new myStuff.DoSomething();,以获取它的实例。有时在需要时我会给实例提供一个类似的参考:var myObj = new myStuff.DoSomething();

我开始考虑内存管理:当它们不再使用时,JS是否清理没有引用的对象? - 与清理引用的方法相同。那么杀死对象中的所有事件处理程序呢,它们仍然存在吗?

示例:例如,如果我使用new关键字创建一个可拖动窗口,并且没有对该对象的引用,然后附加事件处理程序等等。然后我决定从DOM中删除窗口。如何确保删除实际对象?

1 个答案:

答案 0 :(得分:2)

  

当不再使用它们时,JS是否清理没有引用的对象?

是。 JavaScript是一种garbage collected语言。

  

那么杀死对象中的所有事件处理程序呢,它们还能继续存在吗?

这取决于,因为我们现在谈论的是DOM,而不仅仅是JS作为一种语言。某些DOM实现(例如在IE的旧版本中)是notorious for leaking memory in this way。其他浏览器/ DOM实现可能没有这样的错误。