使用eval的功能不会通过缩小

时间:2014-03-27 21:37:16

标签: javascript eval minify google-closure-compiler

这是我的奇怪功能,让我的用户创建自己的JavaScript代码

function evalThisFunction(functionBody){        
     var func;
     eval("func = " + functionBody);
     return func;
}

但是在使用Closure Compiler(http://closure-compiler.appspot.com/)缩小之后,我得到了这个结果:

function a(b){eval("func = "+b);}

你是否看到了我可以修改我的奇怪功能的方法,以便它在缩小后仍能正常工作?

1 个答案:

答案 0 :(得分:5)

是的,请使用Function constructor

function evalThisFunction(functionBody){        
     return Function(functionBody);
}

或者,您可以完全替换Function的上述代码,无论如何它似乎都可以做到。 eval有范围问题。