≮海浪轻风≯

笑对人生,珍惜所有!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

eval的作用

Posted on 2007-09-21 10:48  ≮海浪轻风≯  阅读(167)  评论(0)    收藏  举报
【知道】javascript中的eval

eval是什么用途?

悬赏分:0 - 提问时间2006-3-14 15:03

提问者:阿修罗行者 - 魔法学徒 一级 

——————————————————————
最佳回答:

eval可以将字符串生成语句执行,和SQL的exec()类似。 

eval的使用场合是什么呢?有时候我们预先不知道要执行什么语句,只有当条件和参数给时才知道执行什么语句,这时候eval就派上用场了。举个例子: 

我们要做一个function(),功能是输入网页中两个个对象的名称,然后程序就将这两个对象的值联接起来输出。 

function output(a,b) 

var tmpa,tmpb; 
tmpa=document.all.a.value; 
tmpb=document.all.b.value; 
document.write(tmpa+tmpb); 


output('input1','input2'); 

这样你执行的时候就会提示错误“document.all.a不是对象”以及“document.all.b不是对象”。原来javascript把a和b当成对象名称了,怎样能让javascript把a里面的值作为对象名称呢?这时候就要用eval了,把代码改成这样: 

function output(a,b) 

var tmpa,tmpb; 
tmpa=eval("document.all."+a+".value"); 
tmpb=eval("document.all."+b+".value"); 
document.write(tmpa+tmpb); 


output('input1','input2'); 

这样javascript就会先取出a,b的值,然后和前面的document.all.以及后面的.value组合运行,于是就可以 
顺利取出input1和input2的值,我们的目的达到了。 

明白了吗? 

参考文章:http://hi.baidu.com/erdeni/blog/item/86b3a6afa80987cd7dd92a3f.html