给定字符串格式的函数如何将其转换回javascript中的函数?

时间:2015-08-03 22:18:42

标签: javascript node.js string function eval

说我在javascript中有一个函数

Selection.InsideHeight = 250
Selection.InsideWidth = 250

然后我做

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

返回

fn.toString();

如何将其重新转换为函数并最终在以后调用它。我试过"function () { return 6 + 5; }" 正如其他人所说的那样,但这似乎对我不起作用。任何帮助将不胜感激!!!

3 个答案:

答案 0 :(得分:1)

您可以为该功能命名,然后您可以调用它。这应该工作

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

eval("var newfn = " + stringFunc);
console.log(newfn())

您也可以通过这样的参数执行它

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

答案 1 :(得分:1)

@LeeDennis只需调用fn();而不是fn.toString();变量“fn”是您只需要添加括号的函数。

我控制台记录了输出,以便您可以看到它们。

// CODE

<!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>

答案 2 :(得分:1)

使用eval():

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

检查出来:

JavaScript eval() "syntax error" on parsing a function string