Javascript:从内存中删除一个 element.cloneNode() [重复]
Posted
技术标签:
【中文标题】Javascript:从内存中删除一个 element.cloneNode() [重复]【英文标题】:Javascript: remove an element.cloneNode() from memory [duplicate] 【发布时间】:2017-04-30 23:21:54 【问题描述】:我的情况是我必须克隆一个元素,读取它的属性和其他解析功能,但现在因为我不这样做 element.parentNode.appendChild(clonedElement)
我如何从内存中删除这个克隆?
var clonedElement = element.cloneNode();
// do some stuff with it
clonedElement = null; // is this good enough?
那么是的,clonedElement = null;
是否足以从内存中清除它?
【问题讨论】:
【参考方案1】:如果要删除变量对 DOM 节点的引用,请使用
element = null;
由于 javascript 是垃圾收集器,因此您不需要自己删除对象 当无法再引用它们时,它们将被删除。
但是
如果一个被移除的 DOM 元素是无引用的 (没有指向它的引用)然后是的 元素本身被垃圾收集器以及任何事件拾取 与之关联的处理程序/侦听器。
如果有仍然指向该元素的引用, 元素及其事件监听器保留在内存中。
var removeChilds = function (node)
var last;
while (last = node.lastChild) node.removeChild(last);
;
removeChilds( element ) ;
element=null;
【讨论】:
以上是关于Javascript:从内存中删除一个 element.cloneNode() [重复]的主要内容,如果未能解决你的问题,请参考以下文章
delete[] p->elems和free(p->elems)有什么区别?