花不谢
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进阶篇
468061 学习 · 21891 问题
相似问题
回答 3
回答 1
回答 4
回答 2
回答 1