未使用的DOM元素会发生什么?

The*_*EEP 6 javascript html5 dom

假设我创建了一个具有自己的画布的类:

this.canvas = document.createElement("canvas");
Run Code Online (Sandbox Code Playgroud)

我使用那个画布,绘制一些东西等,但从不将画布添加到DOM树.当我完成后,我将不再使用全班.

所以当我删除使用画布的类时,画布是否仍占用内存?我是否必须以某种方式删除它?

或者,作为一个更一般的问题:不再存在于DOM树中的未使用元素会发生什么变化或从未发生过(在网站中不可见)?它们会被垃圾收集和/或你能加快速度以提高性能吗?

jAn*_*ndy 2

正如您自己已经正确指出的那样,这与 DOM 树无关,更多的是关于对象引用和垃圾收集器。

当您通过基对象删除/删除类时null,所有现代收集器都会照顾您。通过甚至不将节点插入到 DOM 中,您也不必担心任何隐藏的引用。我见过几个人明确地设置了<canvas>nullalso的引用,但我想这纯粹是IE8偏执狂。