我有一个存储为字符串的函数列表,例如:
var act= "function () { alert() }";
我需要将行为的类型从“字符串”更改为“函数”,以便可以 .call() 它。我应该这样结束:
act = function () { alert() };
如何才能做到这一点?
我有一个存储为字符串的函数列表,例如:
var act= "function () { alert() }";
我需要将行为的类型从“字符串”更改为“函数”,以便可以 .call() 它。我应该这样结束:
act = function () { alert() };
如何才能做到这一点?
这是使用 eval 不仅有效而且正确的少数情况之一:
var act = eval(function_string);
但是,我应该注意,在字符串中包含一堆函数是糟糕设计的标志。不过,如果你必须这样做,那么 eval 就是这样做的方法。
尝试这个:
var act = 'alert(5);';
act = new Function( act );
我猜你必须用eval来做。但是很多人认为它是邪恶的(请确保您从安全的来源获取字符串。)
var act= "function () { alert() }";
eval ('act = '+ act)
您可以使用eval
,尽管如果字符串来源未知,则认为它特别不安全。你不能真正将你拥有的东西分配给任何变量。eval
参数必须是表达式或语句。你可以做这样的事情。
eval("var act = function () { alert('hey') }");
act();