说我在javascript中有一个函数
Selection.InsideHeight = 250
Selection.InsideWidth = 250
然后我做
var fn = function () {
return 6 + 5;
};
返回
fn.toString();
如何将其重新转换为函数并最终在以后调用它。我试过"function () { return 6 + 5; }"
正如其他人所说的那样,但这似乎对我不起作用。任何帮助将不胜感激!!!
答案 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