这函数调用我一直看不大懂,所以想问问大家,我这样理解对不对?

代码是这样的:
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))?

德玛西亚99
浏览 61回答 1
1回答

慕的地6264312

解决方法捕获按键的事件。<script language="javascript">&nbsp;function test(event) {&nbsp;event = event || window.event;&nbsp;if(event.keyCode==13) { alert("你按了回车") }&nbsp;if(event.shiftKey==true) { alert("你按了shift") }&nbsp;if(event.ctrlKey==true) { alert("你按了ctrl") }if(event.altKey==true) { alert("你按了alt") }} </script>每个按键都对应一个ASCII码 比如回车的ASCII码是13 每个按键的ASCII码你可以在百度上查。setTimeout() 方法的返回值是一个唯一的数值,如果你想要终止 setTimeout() 方法的执行,那就必须使用 clearTimeout() 方法来终止,而使用这个方法的时候,系统必须知道你到底要终止的是哪一个 setTimeout() 方法 (因为你可能同时调用了好几个 setTimeout() 方法),这样 clearTimeout() 方法就需要一个参数,这个参数就是 setTimeout() 方法的返回值 (数值),用这个数值来唯一确定结束哪一个 setTimeout() 方法&nbsp;你的setTimeout(function(){location.reload();},1000)会返回一个值。比如你要用回车结束setTimeout js代码如下。function test(event,id) {&nbsp;event = event || window.event;&nbsp;if(event.keyCode==13) {&nbsp;clearTimeout(id);&nbsp;}}这里的ID 就是你 setTimeout方法的返回值。了解了吗?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript