通过从DOM中删除它的代码来清理javascript变量范围

希望这个基于jquery的简单代码有助于解释这个问题。

HTML:

 $('#remover').click(function(){ $('#block').empty(); }) $('#test').click(function(){ alert(remove1); // still displays the varibale })  
var remove1 = 'asasdsds'; var remove2 = 'asasdsds'; var remove3 = 'assdsdsdas'; var blabla = 'blablabl';
Remove ALL Test // it will still displays the variable.

我需要通过删除块内容来清除全局范围内的所有变量。 块内容是动态的,可以包含任何javascript代码。

谢谢阅读。

这当然不会像你期望的那样工作。 JavaScript堆没有耦合到DOM – 一旦脚本执行了,并且变异了堆,你就不能通过删除它们的相关源代码来“取消”它们。

全局变量通常在窗口对象上设置,因此如果您知道名称,则可以从那里删除它们。 如果你想要撤消块内任何JavaScript的效果,那你几乎没有运气。

Javascript不能那样工作! 一旦解析了一个脚本块,从DOM中删除它就不会做任何事情……我唯一能想到的就是这样一个非常难看的黑客

  

然后你的删除function看起来像: