6

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

this.canvas = document.createElement("canvas");

我使用那个画布,画一些东西等等,但从不将画布添加到 DOM 树中。完成后,我将不再使用整个班级。

那么当我删除使用canvas的类时,canvas是否还占用内存呢?我必须以某种方式删除它吗?

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

4

1 回答 1

1

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

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

于 2012-05-25T10:10:49.753 回答