【发布时间】:2013-06-03 11:08:37
【问题描述】:
我有一个字符串是我的 javaScript 函数:
var foo = "CONCATENATE('a', ' ', 'b')";
如何在不使用eval()的情况下使这个函数的javascript调用?
【问题讨论】:
-
这就是
eval的用途......以及任何其他名称的玫瑰............我会尝试重构以避免将所有这些数据放在一个字符串中。跨度> -
我会看看你为什么需要这样做,并考虑重新设计。正如昆汀所说,虽然 eval 是邪恶的,但这正是它的目的。只需确保字符串不是来自用户输入即可。
-
您可以建立一个可能函数的“白名单”并自己解析字符串。大量的工作和重新发明轮子,但它会奏效。
-
在 javascript 中,没有 eval() 就无法使用字符串作为代码;
标签: javascript