我想将一个现在为字符串的函数转换为Function。
这会返回错误,有任何建议吗?
var a = 'function () { return "a"; }'.trim();
console.log(a);
var b = eval(a);

答案 0 :(得分:2)
A"解决方案" would be to add parenthesis around the string,以便评估表达式:
var a = 'function () { return "a"; }'.trim();
console.log(a);
var b = eval('('+a+')');

但在设计糟糕之后,你很清楚。没有问题应该以这种方式解决。
请注意,使用Function构造函数(无法访问局部变量)比使用eval
稍微安全一点:
var fun = new Function('return "a";')