比如说你现在要运行一个可变的方法
function
name1(){……}
function
name2(){……}
var
m="name1"
eval(m+'()')//运行name1()
m='name2'
eval(m+'()')//运行name2()
1.参考资料复制在下面了...2. eval说白了..就是把你传入的字符串当一个javascript脚本执行了...然后再返回执行结果这就是为什么eval能将字符串解析成JSON对象的原因了
3. javascript语法之灵活...有时不可思议...如果你输入数字比如1这个eval把1当常量处理了...没错...但是你输入字符串没出错我没理解,你输入的字符串是什么样子的?判断语句如1===1 这也不会出错但如果输入如a==1我觉得会出错的...您再看看有问题我们探讨,我也在学习
eval()函数功能是将某段字符串当成JS语句来执行。例如:
var str = "var a = {}"
eval(str)
即相当于直接执行
var a = {}
通常在执行AJAX调用后处理回传过来的数据时会用到,例如回传过来的字符串是JSON格式时,可以直接使用eval()。
如:
回传的语句是
responseText = "{a:'aa',b:'bb'}"
可直接调用为
eval("var o = "+responseText)
即相当于
var o = {a:'aa',b:'bb'}