1

我有一个对象:

var myObj = new myAwsumObj();

现在,目前我正在像这样删除它:

myObj = undefined;

但这显然没有任何作用,因为对象仍然存在(我可以看到异常是由定义该对象的“外部”javascript文件中的东西引发的)。

我如何清除所有这些东西?可能吗?因为它似乎myObj在这个外部 javascript 文件中做了很多工作,甚至可能创建新对象,是否可以在不重构这个外部文件的情况下清除所有这些混乱?

4

1 回答 1

1

不幸的是,这是不可能的。根据您的描述,对象本身似乎正在通过添加事件处理程序、设置超时/间隔、ajax 回调等方式创建对自身的引用。即使您清除了对自己创建的对象的所有引用,您仍然必须清除它自己创建的引用。只有这样,它才会变为非活动的、未引用的并且有资格进行垃圾收集。

但是查看它的源代码,也许该对象提供了一个“destruct”方法来处理所有这些混乱。

于 2013-04-18T01:34:55.073 回答