【发布时间】:2012-06-08 15:09:06
【问题描述】:
我知道这个函数获取一串有效的 JavaScript 表达式或语句并计算表达式或执行语句,但为什么我们需要将代码传递给函数以执行,而不是简单地在脚本中编写代码?
【问题讨论】:
-
例如在浏览器中使用 json 没有 json-object。或者用于计算一些输入。
标签: javascript
我知道这个函数获取一串有效的 JavaScript 表达式或语句并计算表达式或执行语句,但为什么我们需要将代码传递给函数以执行,而不是简单地在脚本中编写代码?
【问题讨论】:
标签: javascript
假设您有函数:makeCheckbox()、makeRadio() 和 makeSelect()(理论上)。您想通过用户的活动(例如菜单点击)调用函数。你可以用if、else if 等等,你可以用switch,但你也可以用eval 做类似的东西:
eval('make'+userChoose.charAt(0).toUpperCase()+string.slice(1)+'()');
其中userChoose 是以下选项之一:radio、checkbox 或select,即首先是first-char-uppercased,然后与make(之前)和()(之后)连接,这最后调用其中一个函数。
这不是一个好的做法,因为在大型项目中,您不能简单地找到函数调用,因为它们“隐藏在”eval 后面,但有时这是唯一的方法。
【讨论】:
这取决于您需要创建动态变量甚至解析 json 数据的情况。无论如何,强烈建议不要使用它。
更多解释见:
要避免它,请参阅;
【讨论】:
有时代码是动态构建的,或者类似于 JSON 的东西需要在当前上下文中进行评估等。这样做不一定是好的,也不一定是必要的——另作讨论。
【讨论】: