删除脚本元素是否会从内存中删除其函数

Does removing a script element remove its functions from memory?

本文关键字:删除 函数 内存 脚本 元素 是否      更新时间:2023-09-26
var scripts  = document.getElementsByTagName("script");
for (var i=scripts.length; i--; ){
   (scripts[i]).parentNode.removeChild(scripts[i]);
}

有人问我这个问题,我的第一个想法是:不。 但是,当您删除style元素时,页面会自动更新,从而删除样式。 这可能是因为浏览器如何钩住 css - 我想我记得 CSS 在每个事件(鼠标移动、点击、类型等(上都会更新。

我只是想确认,摆脱脚本标签不会摆脱已经创建的函数,因为我不在可以测试的计算机上。

这也让我想到了帮助保护代码免受Firebug[类似]用户的良好实践

简短的回答,否。

引擎评估过一次的任何脚本都将在会话的剩余时间内保留在内存中。即使删除包含代码的整个脚本节点也不会改变这一事实。