0

我知道这个函数获取一串有效的 JavaScript 表达式或语句并评估表达式或执行语句,但为什么我们需要将代码传递给函数以执行而不是简单地在脚本中编写代码?

4

3 回答 3

2

有时代码是动态构建的,或者它是需要在当前上下文中评估的 JSON 之类的东西,等等。这样做不一定是好的,也不一定是必要的——另作讨论。

于 2012-06-04T14:35:48.510 回答
2

这取决于您需要创建动态变量甚至解析 json 数据的情况。无论如何,强烈建议不要使用它。

更多解释见:

为了避免它,请参阅;

于 2012-06-04T14:36:25.213 回答
1

假设您有函数:makeCheckbox()makeRadio()makeSelect()理论上)。您想通过用户的活动(例如菜单点击)调用函数。你可以用 制作它ifelse if等等,你可以制作switch,但你也可以eval制作类似的东西:

eval('make'+userChoose.charAt(0).toUpperCase()+string.slice(1)+'()');

whereuserChoose是其中一个选项:radio,checkboxselect, 首先是大写字符,然后与make(before) 和()(after) 连接,最后调用其中一个函数。

这不是好的做法,因为在大型项目中,您不能简单地找到函数调用,因为它们“隐藏在后面” eval,但有时这是唯一的方法。

于 2012-06-04T14:47:24.537 回答