NLe*_*may 0 javascript eval minify google-closure-compiler
这是我的奇怪功能,让我的用户创建自己的JavaScript代码
function evalThisFunction(functionBody){
var func;
eval("func = " + functionBody);
return func;
}
Run Code Online (Sandbox Code Playgroud)
但在使用Closure Compiler(http://closure-compiler.appspot.com/)进行缩小后,我得到了这样的结果:
function a(b){eval("func = "+b);}
Run Code Online (Sandbox Code Playgroud)
你有没有看到我可以修改我奇怪的功能的方法,所以它在缩小后仍然可以工作?
是的,使用Function构造函数:
function evalThisFunction(functionBody){
return Function(functionBody);
}
Run Code Online (Sandbox Code Playgroud)
或者,你可以完全换掉上面的代码Function,它似乎也可以做你想要的.eval有范围问题.