我有一个对象:
var myObj = new myAwsumObj();
现在,我正在删除它:
myObj = undefined;
但是这显然什么也没做,因为对象仍然存在(我可以看到异常是由“定义此对象的'外部'javascript文件中的某些内容引发的。)
如何清除所有这些内容?可能吗?因为看起来myObj
在这个外部javascript文件中做得非常多,甚至可能创建新对象,是否有可能在不重构此外部文件的情况下清除所有这些混乱?
答案 0 :(得分:1)
不幸的是,这是不可能的。根据您的描述,对象本身似乎是通过添加事件处理程序,设置超时/间隔,ajax回调等来创建对自身的引用。即使您清除了对自己创建的对象的所有引用,您仍然必须清除它自己创建的引用。只有这样它才会变得不活跃,没有参考,并且有资格进行垃圾收集。
但是看看它的源代码,也许该对象提供了一种“破坏”方法来处理所有混乱。