var paragraphElement = document.createElement('p');
paragraphElement
不在DOM中。我该如何删除它?我知道如果它在DOM中,我可以使用removeChild
。我不倾向于将paragraphElement
添加到DOM中,然后将其删除。任何解决方案?
谢谢。
答案 0 :(得分:6)
如果某个对象不再被引用,它将被标记为垃圾收集。因此,当您离开上下文p
有效并且元素未以任何其他方式引用时,垃圾收集将在下次运行时释放内存。垃圾收集如何实现这一点取决于JavaScript引擎。
您还可以为p
指定新的非参考值,例如0
,或使用p = null
。请注意,.removeChild
不会仅从DOM中删除子内存,但如果此节点上没有其他引用,则会将其释放用于垃圾回收。
有关详情,请查看MDN: Memory Management。
答案 1 :(得分:1)
如果它不在DOM中,那么您所要做的就是清除对它的任何JS引用,垃圾收集器将为您删除它。这基本上与javascript对象或javascript数组没有什么不同。如果清除对它的任何引用,垃圾收集器将清理它。
所以,如果你这样创建它:
var paragraphElement = document.createElement('p');
然后,你需要做的就是摆脱它,参考:
var paragraphElement = null;
如果没有对该元素的javascript引用,垃圾收集器将删除它。