从内存中删除HTML元素(DOM节点)

lvi*_*ani 7 javascript dom

根据mdn文档,该方法removeChild从DOM中删除一个节点,但它仍然驻留在内存中.我的问题是我也想从内存中删除它.我已尝试过delete操作员,但对象仍在那里......

myCanvas.parentElement.removeChild(myCanvas);  // myCanvas actually removed from DOM
delete myCanvas;  // false. does nothing
alert(myCanvas); // shows HTMLCanvasElement instead of undefined
Run Code Online (Sandbox Code Playgroud)

Ber*_*rgi 8

阅读http://perfectionkills.com/understanding-delete/.删除操作符不适用于变量(这就是它返回的原因false).

如果要删除变量对DOM节点的引用,请使用

myCanvas = null;
Run Code Online (Sandbox Code Playgroud)

覆盖该值.通常你永远不需要这样做,因为JS的垃圾收集器为你做了所有工作.