javascript 问题document.images.b.src=eval("c"+h+".src")

来源:百度知道 编辑:UC知道 时间:2024/06/06 05:07:36
本人初学js,以下页面的例子中。
<script language="javascript">
<!--
var dn
c1=new Image(); c1.src="img/c1.gif"
c2=new Image(); c2.src="img/c2.gif"
c3=new Image(); c3.src="img/c3.gif"
c4=new Image(); c4.src="img/c4.gif"
c5=new Image(); c5.src="img/c5.gif"
c6=new Image(); c6.src="img/c6.gif"
c7=new Image(); c7.src="img/c7.gif"
c8=new Image(); c8.src="img/c8.gif"
c9=new Image(); c9.src="img/c9.gif"
c0=new Image(); c0.src="img/c0.gif"
cb=new Image(); cb.src="img/cb.gif"
cam=new Image(); cam.src="img/cam.gif"
cpm=new Image(); cpm.src="img/cpm.gif"
function extract(h,m,s,type){
if (!document.images)
return
if (h<=9){
document.images.a.src=cb.src
document.images.b.src=eval("c"+h+".src")
}
else {
document.images.a.s

1,dn这个变量不是在show函数里赋值了吗,然后传给了extract函数
(extract意为'提取',可能是根据时间,提取相应的图片,因为参数传过来的就是时,分,秒,和上下午(dn)的数据)
2,document.images 获取文档中所有 img 对象的集合。document.images.b就是id是'b'的img对象(DOM对象)。document.images.b.src就是这个对象的属性。
3,eval 说白了也就是动态执行脚本。
eval 函数允许 JavaScript 源代码的动态执行。例如,下面的代码创建了一个包含 Date 对象的新变量 mydate :
eval("var mydate = new Date();");
传递给 eval 方法的代码执行时的上下文和调用 eval 方法的一样.

var dn 在方法外,是可以。都是全局变量。
在方法中的话就相当于全局变量。在方法中而赋值了的,就相当于局部变量。只在方法内有效。
document.images.b.src=eval("c"+h+".src")
其实,就是拼接Src 路径的地址,让后赋值给src

可以不申明,js是弱类型语言。叫b的img标签的源。eval这个会把传给他的字符串当作js代码执行

这儿没必要用 eval,麻烦不说,效率低。
c1 到 cb 用数组或者对象存放,就不需要 eval 了。