eval可以将字符串生成语句执行,和SQL的exec()类似。
eval的使用场合是什么呢?有时候我们预先不知道要执行什么语句,只有当条件和参数给时才知道执行什么语句,这时候eval就派上用场了。举个例子:
我们要做一个(),功能是输入网页中两个个对象的名称,然后程序就将这两个对象的值联接起来输出。
output(a,b)
{
var tmpa,tmpb;
tmpa=all.a.;
tmpb=all.b.;
write(tmpa+tmpb);
}
output('input1','input2');
这样你执行的时候就会提示错误“all.a不是对象”以及“all.b不是对象”。原来java把a和b当成对象名称了,怎样能让java把a里面的值作为对象名称呢?这时候就要用eval了,把代码改成这样:
output(a,b)
{
var tmpa,tmpb;
tmpa=eval("all."+a+".");
tmpb=eval("all."+b+".");
write(tmpa+tmpb);
}
output('input1','input2');
这样java就会先取出a,b的值,然后和前面的all.以及后面的.组合运行,于是就可以
顺利取出input1和input2的值,我们的目的达到了。