给定一个字符串格式的函数,我如何将它转换回 javascript 中的函数?

Given a function in a string format how do i convert it back to a function in javascript?

假设我在 javascript

中有一个函数
var fn = function () {
        return 6 + 5;
};

然后我

fn.toString();

哪个returns

"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(); 变量 "fn" 是您只需要添加括号的函数。

我在控制台记录了输出,所以你可以看到它们。

//代码

<!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() "syntax error" on parsing a function string