比如说你现在要运行一个可变的方法
function
name1(){……}
function
name2(){……}
var
m="name1"
eval(m+'()')//运行name1()
m='name2'
eval(m+'()')//运行name2()
开始我猜测第一个eval作用等同于getElementById,即通过一个id名获取DOM对象于是我写了个测试方法,代码如下
<div id="left" onclick="ev('left')">haha</div>
<script type="text/javascript">
function ev(str){
alert(eval(str).innerHTML)
}
</script>
语句意思是点击对象,弹出含有id为left的对象的内部源码,经测试,结果正确.
推论,eval不但可以执行js语句,也可以用作获取对象的方法,他是否只能用作通过id获取对象我没做测试.期待你自行挖掘.
这样,对于你的源码就很好解释了,left_n就是获取的对象,left_n.style.display控制对象的显示与隐藏.
作用是把对应的字符串解析成js代码并运行。eval()()是程序语言中的函数,功能是获取返回值,不同语言大同小异,函数基础是返回值= eval(codeString),如果eval函数在执行时遇到错误,则抛出异常给调用者。
如果eval函数在执行时遇到错误,则抛出异常给调用者。类似的函数是loadcode,loadcode不立即执行代码,另外返回一个函数对象。并且loadcode支持路径参数,评估不支持。评估不支持代码中的返回语句,将代码作为表达式直接计算出结果。
相关信息:
Eval函数在PHP代码中的用法:eval()函数把字符串按照PHP代码来计算。该字符串必须是合法的PHP代码,且必须以分号结尾。如果没有在代码字符串中调用返回语句,则返回NULL。如果代码中存在解析错误,则eval()函数返回false。
Eval函数在VBScript脚本语言中的使用:在VB脚本语言中,Eval函数具有两层英文,一是实现计算表达的值,即eval()函数可将字符串转换为代码执行,并返回一个或多个值;二是运行指定的代码。