问答详情
源自:8-5 计时器setTimeout()

为什么一个无穷循环,一个只运行一次?


为什么

当按钮start被点击时,setTimeout()调用函数,在5秒后弹出一个提示框   只运行一次?


<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
function tinfo(){
 var t=setTimeout("alert('Hello!')",5000);
}
</script>
</head>
<body>
<form>
 <input type="button" value="start" onClick="tinfo()">
</form>
</body>
</html>




而这个代码就创建一个运行于无穷循环中的计数器,而不是只运行一次?


<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
var num=0;
function numCount(){
document.getElementById('txt').value=num;
num=num+1;
setTimeout("numCount()",1000);
}
</script>
</head>
<body>
<form>
<input type="text" id="txt" />
<input type="button" value="Start" onClick="numCount()" />
</form>
</body>
</html>


提问者:tom0008668 2016-04-13 17:34

个回答

  • Aczael
    2016-04-13 18:43:13
    已采纳

    下面这个函数,在函数里面调用了自己,相当于运行setTimeout("numCount()",1000);的时候,又将nunCount()重新运行了一次……