JS 中的浏览器、DOM 元素和垃圾回收

Browser, DOM elements and garbage collection in JS

提问人:89Tr34Ve 提问时间:5/13/2023 更新时间:5/14/2023 访问量:45

问:

我正在尝试了解 JavaScript 中的内存泄漏,我遇到了这个例子:

let nodes = {
    owner: document.getElementById('owner')
};
document.getElementById('owner').remove();

对我来说,存储此 DIV 元素节点的内部存储器不能被垃圾回收是有道理的,因为“nodes”JS 对象的“owner”属性仍然具有指向它的引用/指针。

但是,我试图想象这些东西是如何工作的,我不确定我是否正确理解了它。我假设 DOM 节点是一个对象或其他一些特殊的数据结构。

我想我的问题真的是,浏览器/浏览器的 DOM 是否引用了这个 DOM 节点对象的堆,以及浏览器中运行的 JavaScript 是否也引用了这个 DOM 节点对象的堆?那么,在处理 DOM 对象和全局函数时,浏览器和运行在其中的 javascript 是否共享这些内存地址,或者这种理解是否不好?

我的可视化:

enter image description here

JavaScript DOM 浏览器 集合 垃圾

评论

1赞 Bergi 5/13/2023
将“V8 引擎”和“JavaScript”放在两个不同的盒子里有点奇怪

答: 暂无答案