我有一个JavaScript文件,它会读取另一个文件,该文件可能包含需要执行eval()的JavaScript片段。这些脚本片段应符合一组限制其操作和更改变量的JavaScript严格子集标准,但我想知道是否有一种方法可以通过防止eval看到全局范围内的变量来强制执行这些限制。类似以下方式:
function safeEval( fragment )
{
var localVariable = g_Variable;
{
// do magic scoping here so that the eval fragment can see localVariable
// but not g_Variable or anything else outside function scope
eval( fragment );
}
}
实际的代码不必像这样--我对所有关于闭包等奇怪技巧都持开放态度。但是我想知道这是否 可能。
eval
,但你可以尝试切换其执行上下文(谷歌激活对象)。 - jfs