给定一个字符串格式的函数,我如何将它转换回 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
假设我在 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