代码是这样的:
var n;
n=1;
setTimeout('change_img()',6000);
function change_img()
{
if(n>2) n=1
setTimeout('setFocus1('+n+')',6000);
n++;
t=setTimeout('change_img()',6000);
}
首先定义变量n然后对其进行赋值,开始计时(注:假设为第0秒时)当6秒后(注:第6秒)执行函数setTimeout('change_img()',6000),在执行过程中因为要调用到函数change-img(),所以要先对函数change-img()进行处理,由于开始给n赋值为1,
所以当n=1时,开始执行函数setTimeout('setFocus1('+n+')',6000),得到的结果是6秒后(注:第12秒)调用函数setFocus1(1),
然后n自增为2,接着返回函数setTimeout('setFocus1('+n+')',6000)得到的结果为6秒后(注:第12秒)调用函数setFocus1(2),
又因为函数setFocus1的参数使用了连接符“+n+”,所以当时间到达第12秒时同时调用setFocus1(1)和setFocus1(2)这两个函数,因为设置了if(n>2),所以当n=3时,循环语句结束。
但是由于设置了t=setTimeout('change_img()',6000);所以在循环语句结束的时候开始重新计时,进行下一轮的循环(重复上面的过程)
不知道我这样理解对不对,不是很清楚,另外假如函数setFocus1的参数是n而不是+n+的话是不是表示在上面的语句循环中,最后只会调用最后一个函数,而其他的调用函数被覆盖(也就是说只调用setFocus1(2)而不会调用setFocus1(1))?
慕的地6264312
相关分类