gpt4 book ai didi

javascript - 为什么对象在被 document.getElementById 编辑后必须为 IE 清空?

转载 作者:数据小太阳 更新时间:2023-10-29 06:13:22 27 4
gpt4 key购买 nike

我经常在第三方 JavaScript 代码中看到:

var el = document.getElementById(elementId);

对象经常被置空,并且沿着这个操作的评论说它是为 IE 完成的:

el = null; // IE

真正的目的是什么?有这方面的资源吗?

最佳答案

通过 nixing 引用,它们打破了 DOM 对象和 JavaScript 对象之间相应的循环依赖,这些对象在旧版 IE 中由不同的子系统控制(因此不可能被垃圾收集)。

例如:

var el = document.getElementById(elementId);
el.onclick = function () { // here the cyclic reference is created
/...
};

JavaScript 子系统现在引用了 el 元素,DOM 子系统(el 元素)引用了 JavaScript 对象(函数加上什么它关闭了)。

不过,如果您通过 addEventListener 添加监听器,则不必担心。

要阅读有关常见内存泄漏陷阱的更多信息,请参阅 http://www.ibm.com/developerworks/web/library/wa-memleak/ .

关于javascript - 为什么对象在被 document.getElementById 编辑后必须为 IE 清空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6646419/

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