如何从对象属性中删除dom引用和事件委托给dom元素/字段

时间:2015-09-21 09:17:18

标签: javascript closures

如果我有一个具有引用DOM元素的属性的对象,并在dom中的窗口小部件/字段上委托事件,则将使用jquery mainobj.properties.elem删除主包装器dom元素。$ html_main.empty()。remove()将删除来自其他对象属性的事件处理程序($ form,$ table,$ tab),我还需要手动为GC分配每个(属性引用)为null。如果我将null分配给主父对象,它的所有子节点都将自动符合GC的条件。就像我指定mainObj = null一样,所有子对象,属性,property.elem,properties.elem。$ form ....等都是null并且可以被GC收集。在取消mainObj之后,是否会有来自子对象的延迟DOM链接。

我的对象:



preg_replace




1 个答案:

答案 0 :(得分:0)

如果更高级别的对象不再可访问,因为您已经取消了对它的变量引用,并且没有其他代码对任何子对象有任何引用,那么所有对象都无法通过任何代码进行垃圾回收,即使它们包含DOM引用。

通常,我会避免存储DOM引用,而只是在某些函数开始时需要时使用DOM查询来检索它们。这样可以避免任何泄漏DOM节点的可能性,因为您忘记在某处遗漏其引用。