在自定义全局上下文中执行任意javascript

在自定义全局上下文中执行任意javascript,javascript,Javascript,我执行这个任意js代码的唯一要求是不公开某些全局变量/函数(例如,setInterval) 我目前的策略是通过js代码进行解析,并对每个全局引用进行var声明(在封闭闭包的开头) 我想知道是否还有其他明显的方法来解决这个问题 还需要澄清的是,这段任意代码不是通过eval之类的东西运行的。相反,它被包装在一个闭包中并附加到基本代码中。其中一个选项是通过提供您自己的函数或变量来覆盖全局变量。例如: window.alert=函数(){ //您的代码位于此处 //如果需要,可以选择调用window.a

我执行这个任意js代码的唯一要求是不公开某些全局变量/函数(例如,
setInterval

我目前的策略是通过js代码进行解析,并对每个全局引用进行
var
声明(在封闭闭包的开头)

我想知道是否还有其他明显的方法来解决这个问题


还需要澄清的是,这段任意代码不是通过
eval
之类的东西运行的。相反,它被包装在一个闭包中并附加到基本代码中。

其中一个选项是通过提供您自己的函数或变量来覆盖全局变量。例如:

window.alert=函数(){
//您的代码位于此处
//如果需要,可以选择调用window.alert
}


如果你有一个小的、有限的、想要隐藏的东西列表,那么这应该是可以管理的。这将使它们在全局范围内不可用。

如果您有一个JS无法完成的小有限列表,那么其中一个想法就是使用您的值(如window.alert=myalert)覆盖函数和变量。这显然使它们在全球范围内不可用。以防它符合您的目的。您可以将代码包装在闭包中(闭包只是一个函数)。然后,每个全局声明都会成为闭包的局部内容。@Raghav Yea这是更好的方法,也是我需要做的。我不敢相信我错过了这个明显但重要的一点。请留下答案,我会接受的。谢谢@PatrickGunderson我的目标是在任意JS代码中拒绝访问这些全局变量。谢谢你的评论!