createElement,进行克隆,但不要附加:内存泄漏?

时间:2019-04-25 09:37:23

标签: typescript dom

我有一个父类 Templates ,该类将一些HTML加载到div元素中,而该元素实际上从未附加到DOM。正在加载的HTML可能包含一些不同的模板,该类可让您调用它们,在(未附加的)div中按id搜索它们,然后返回它们的克隆以附加到DOM。

尽管如此,有时,该模板化类可能会被实例化多次,从而创建了许多从未附加的div(仅用于克隆)。通常,如果在javascript中对这些div的引用被显式设置为null,并且未将其附加到DOM,则会对其进行垃圾回收吗?还是它们堆积在某个地方?

猜猜我的意思是:

private el:HTMLElement;
constructor(htm:string) {
   this.el = document.createElement('div');
   $(this.el).html(htm);
}
public draw(selector:string):HTMLElement {
   return ($(this.el).find(selector).clone());
}
public destroy():void {
   this.el = null;
}

一旦将this.el从未附加到DOM上并且假设没有其他代码可以访问它的情况下,一旦调用了destroy,那么将对它的句柄'div'进行垃圾收集吗?

0 个答案:

没有答案