给定一个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