这是我的奇怪功能,让我的用户创建自己的JavaScript代码
function evalThisFunction(functionBody){
var func;
eval("func = " + functionBody);
return func;
}
但是在使用Closure Compiler(http://closure-compiler.appspot.com/)缩小之后,我得到了这个结果:
function a(b){eval("func = "+b);}
你是否看到了我可以修改我的奇怪功能的方法,以便它在缩小后仍能正常工作?
答案 0 :(得分:5)
是的,请使用Function constructor:
function evalThisFunction(functionBody){
return Function(functionBody);
}
或者,您可以完全替换Function
的上述代码,无论如何它似乎都可以做到。 eval
有范围问题。