gpt4 book ai didi

javascript - 在 JavaScript 中释放内存的正确方法

转载 作者:行者123 更新时间:2023-11-29 20:51:07 57 4
gpt4 key购买 nike

作为一名 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;

或者我是否必须取消引用子元素的每个对象并删除它们的事件监听器?

最佳答案

将一个对象设置为 null 会使它成为一个空对象。一旦对象超出范围,GC(当它运行时)将清除它。将本地对象设置为 null 对您没有任何好处。

例子:

function whatever()
{
var something = null;
console.log( typeof( something ) );
}

whatever();

输出:

"object"

删除一个子节点,请看这个: Does removeChild really delete the element?

来源:

https://www.w3schools.com/js/js_datatypes.asp

关于javascript - 在 JavaScript 中释放内存的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51827294/

57 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com