给定一个string格式的函数如何将其转换回到JavaScript中的函数?

说我有一个JavaScript的function

var fn = function () { return 6 + 5; }; 

然后我做

 fn.toString(); 

哪个返回

 "function () { return 6 + 5; }" 

我怎么能把它变成一个函数,并最终在后面调用它。 我已经试过eval就像其他人所说的,但这似乎并没有为我工作。 任何帮助将非常感激!!!

你可以给这个函数一个名字,然后你可以调用它。 这应该工作

 var fn = function () { return 6 + 5; }; var stringFunc = fn.toString(); eval("var newfn = " + stringFunc); console.log(newfn()) 

你也可以执行它传递这样的参数

 console.log(eval("("+stringFunc+")()")) 

@ LeeDennis只是叫fn(); 而不是fn.toString(); variables“fn”是你只需要添加括号的函数。

我控制台logging输出,所以你可以看到他们。

//码

 <!DOCTYPE html> <html> <head> <script> var fn = function () { return 6 + 5; }; console.log(fn()); //returns 11 console.log(fn.toString()); //returns "function () { return 6 + 5; }" </script> </head> <body> </body> </html> 

使用eval():

 fnString = 'function () { return 6 + 5; }'; fn = eval('(' + fnString + ')'); alert(fn()); 

看一下这个:

JavaScript eval()“语法错误”parsing函数string