cache eval()结果

Dud*_*lul 5 javascript

在Javascript中,是否可以缓存结果eval

例如,如果我能够:

var str="some code...";
var code = eval(str);
//later on...
code.reExecute();
Run Code Online (Sandbox Code Playgroud)

Mic*_*Mic 6

你可以创建str一个函数的主体New Function而不是使用eval.

var fn = new Function([param1, param2,...], str);
Run Code Online (Sandbox Code Playgroud)

并通过调用重用它 fn(p1, p2,...)

或者使用eval,并制作str类似的东西

var fn = eval("(function(a){alert(a);})")
Run Code Online (Sandbox Code Playgroud)