我想在数据库记录中定义函数和脚本,然后使用 Javascript 将数据库字段从字符串转换为代码。
我在想我可以使用“eval”,但这似乎不起作用。
举个例子:
var strTest = "function(strParams) { alert('hello: ' + strParams); };"
,fn = eval(strTest);
fn("World");
这是行不通的,eval 返回未定义,希望这能说明我正在努力实现的目标。
最佳答案
问题是 eval
将您的函数解析为函数声明。但是函数声明需要一个名称。
相反,您应该使它成为一个不需要函数表达式的函数表达式。
var strTest = "(function(strParams) { alert('hello: ' + strParams); })";
eval(strTest)("World");
仅当您信任该字符串时才这样做。
或者,您可能对 Function
构造函数感兴趣:
var f = Function("strParams", "alert('hello: ' + strParams)");
f("World");
关于javascript - 如何调用定义为字符串的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34514654/