【问题标题】:Given a function in a string format how do i convert it back to a function in javascript? [duplicate]给定一个字符串格式的函数,我如何将它转换回 javascript 中的函数? [复制]
【发布时间】:2015-08-04 06:22:51
【问题描述】:
假设我在 javascript 中有一个函数
var fn = function () {
return 6 + 5;
};
然后我做
fn.toString();
返回
"function () { return 6 + 5; }"
我怎样才能把它变成一个函数并最终在以后调用它。正如其他人所说,我已经尝试过eval,但这似乎对我不起作用。任何帮助将不胜感激!!!
【问题讨论】:
标签:
javascript
node.js
string
function
eval
【解决方案1】:
你可以给函数起一个名字,然后你就可以调用它。这应该工作
var fn = function () {
return 6 + 5;
};
var stringFunc = fn.toString();
eval("var newfn = " + stringFunc);
console.log(newfn())
你也可以像这样传递参数来执行它
console.log(eval("("+stringFunc+")()"))
【解决方案2】:
@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>