花不谢
2016-03-02 09:33
为什么要在12和14行分别填入:setTimeout("starCount()",1000);才可以???仅仅在12或者14是不行的
//一开始我也没想明白,后来仔细看看 执行顺序 我想明白了,答案如下 按顺序看...
<script type="text/javascript">
var num=0;
// 1.函数没有调用前 是不存在的 没有创建的,这个你得想明白
function startCount() { // 3.被调用了 // 6. 被内部setTimeout 调用
document.getElementById('count').value=num; //4.执行 第一步 7.执行 第一步
num=num+1; //4.执行 第二步 7.执行 第二步
setTimeout("startCount()",1000); /*5.执行 第三步 1秒后调用 startCount函数 8.执行 第三步 1 秒后调用 startCount函数 形成循环*/
}
setTimeout("startCount()",1000);// 2.这段的作用是1秒后调用 startCount函数
/*9. 其实这个了写成立即调用也能达成效果 startCount(); 函数外这个setTimeout("startCount()",1000) 误导了大家,产生了疑惑,主要原因还是基础不扎实。*/
/*10.个人粗浅之见,如有错误,请温柔指正,不胜感激!*/
</script>
<script type="text/javascript">
var num=0;
function startCount() {
document.getElementById('count').value=num;
num=num+1;
setTimeout("startCount()",1000) ;
document.getElementById('count').value=num;
}
</script>
我的这样写是可以的 你试试
JavaScript进阶篇
469229 学习 · 22584 问题
相似问题
回答 3
回答 1
回答 4
回答 1
回答 3