如何从字符串调用anonymus函数

Kri*_*ian 5 javascript anonymous-function

我有字符串包含anonymus函数定义,但我怎么称呼它.让我们说功能是这样的:

var fn_str = "function(){ alert('called'); }";
Run Code Online (Sandbox Code Playgroud)

试过eval,但得到一个错误,该函数必须有一个名字.

eval(fn_str).apply(this); // SyntaxError: function statement requires a name
Run Code Online (Sandbox Code Playgroud)

gdo*_*ica 5

您可以使用立即调用的函数表达式:

var fn_str = "function(){ alert('called'); }";
eval('(' + fn_str +')();');
Run Code Online (Sandbox Code Playgroud)

立即调用函数表达式

另一种方法是使用Function对象(如果你有函数体字符串):

var func = new Function("alert('called')");
func.apply(this);
Run Code Online (Sandbox Code Playgroud)