【发布时间】:2018-08-13 17:03:26
【问题描述】:
作为一名 C 开发人员,我感到迫切需要尽可能准确地释放内存。但是在阅读了一些关于 JavaScript 内存管理的帖子后,我仍然对该主题有一些疑问。据我了解,当一个对象不再被引用并且GC可以找到时间时,有一个垃圾收集器会自动释放内存。因此,当变量超出范围时,保存在局部变量中的对象很可能会被释放。
假设我有一些自定义元素(选项卡控件、数据表、输入等)。这些自定义元素的类具有成员变量,其中存储了特定元素的多个数据。事件监听器也可以附加到自定义元素所包含的元素上。
假设我有以下 html 标记:
<my-tabbar>
<my-tab id="myTab">
<my-input></input>
<my-dataTable></my-dataTable>
</my-tab>
</my-tabbar>
现在我想删除<my-tab>。做就够了吗
var element = document.getElementById ("myTab");
element.parentNode.removeChild (element);
element = null;
或者我是否必须取消引用子元素的每个对象并删除它们的事件侦听器?
【问题讨论】:
-
我可能错了,但我怀疑内存管理是由实现决定的,而不是 ECMAscript 规范中明确规定的。感谢上帝,您不必为 Internet Explorer 6 编写 JavaScript。
标签: javascript memory