我知道这个函数得到一串有效的JavaScript表达式或语句,并评估表达式或执行语句,但为什么我们需要将代码传递给函数来执行,而不是简单地在脚本中编写代码?eval函数的目的是什么?
0
A
回答
1
比方说,你具备的功能: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
之后,但有时它是唯一的方法。
2
有时候代码是动态构建的,或者像JSON那样需要在当前上下文中进行评估等。这样做并不一定是好的或者必要的 - 这是一个不同的讨论。
2
这取决于你需要创建动态变量甚至解析json数据的情况。无论如何,强烈建议使用而不是。
在查看更多解释:
为了避免它,看见了;
相关问题
- 1. 目录路径上的eval是什么?
- 2. JavaScript中的eval函数有什么用?
- 3. atexit函数的目的是什么?
- 4. '身份函数'的目的是什么?
- 5. eval函数是C#
- 6. eval不是函数
- 7. 什么是Emacs的功能的目的(EVAL-和编译)?
- 8. 是Swift中的ScriptEngine还是eval()函数?
- 9. 什么是(0,eval)()呢?
- 10. JavaScript语法疯狂:指向eval函数的指针是不是eval函数?
- 11. jquery的Eval函数
- 12. 为什么我的Makefile中的eval函数不工作?
- 13. eval(parse(...))的危险具体是什么?
- 14. 什么是Eval(“this”)的等效值
- 15. eval()在x = eval(input(“hello”))中的含义是什么?
- 16. eval()(或间接eval/execScrtipt())的合法用途是什么?
- 17. 函数的__proto__是什么?
- 18. 在函数的参数之前使用&的目的是什么?
- 19. void,eval和JavaScript中的Function构造函数有什么区别?
- 20. 解析函数参数的目的是什么?
- 21. eval()函数R
- 22. ostringstream的字符串构造函数的目的是什么?
- 23. 这个奇怪的大写函数的目的是什么?
- 24. 将`Unit`传递给Scala中的函数的目的是什么
- 25. eval中的函数定义
- 26. 浏览器 - 的eval - ()函数
- 27. 帮助的eval()函数
- 28. JavaScript的eval函数解码
- 29. JavaScript的eval()函数与`this`
- 30. Dalvik中的Eval函数
例如,在浏览器中使用json没有json对象。或者用于计算一些输入。 –
看看这个:http://stackoverflow.com/questions/86513/why-is-using-the-javascript-eval-function-a-bad-idea –
http://stackoverflow.com/可能的重复问题/ 1594023 /什么,是最打算用-的-EVAL-中的JavaScript –