【发布时间】:2010-04-04 04:19:12
【问题描述】:
假设我有一个如下所示的 Javascript 字符串
var fnStr = "function(){blah1;blah2;blah3; }" ;
(这可能来自用户输入的、经过适当清理的表达式,也可能是某些符号计算的结果。这真的没关系)。
我想定义fn,就好像以下行在我的代码中一样:
var fn = function(){blah1;blah2;blah3; } ;
我该怎么做?
我想出的最好的如下:
var fn = eval("var f = function(){ return "+fnStr+";}; f() ;") ;
这似乎可以解决问题,尽管它使用了可怕的eval(),并且使用了一个稍微复杂的参数。我能做得更好吗? IE。要么不使用eval(),要么提供一个更简单的参数?
【问题讨论】:
-
一般
eval是evil;-)
标签: javascript