函數(shù)直接調(diào)用,為啥不行?
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>計(jì)時(shí)器</title>
<script type="text/javascript">
? var num=0;
? function startCount() {
? ? document.getElementById('count').value=num;
? ? num=num+1;
? ? setTimeout(startCount,1000);?
? }
//這里換成setTimeout(startCount,1000); ,可以
startCount();
</script>
</head>
<body>
<form>
<input type="text" id="count" />
</form>
</body>
</html>
2021-04-11
那為什么setTimeout(startCount,1000); 就可以,直接調(diào)用就不行呢
2018-08-27
為了測(cè)試函數(shù)是否執(zhí)行我把代碼寫成這樣,結(jié)果是只能執(zhí)行一次,而且并沒有成功的獲取到文本框"count"的id。
既然沒有獲取到"count"的id,再看下?document.getElementById('count').value=num;那這句代碼的是不是等同于null.value=null;這樣的用法很明顯是錯(cuò)誤的,所以函數(shù)終止了,并沒有再往下執(zhí)行。為了驗(yàn)證我的推論,注釋掉?document.getElementById('count').value=num;
結(jié)果是函數(shù)正常執(zhí)行,只是獲取不到"count"的id值,瀏覽器先顯示
隨后動(dòng)態(tài)顯示
可以看出只有第2次顯示獲取的id有值。所以我猜測(cè)在腳本內(nèi)部以函數(shù)名()方式直接調(diào)用函數(shù)的話,會(huì)獲取不到外部元素的id值,所以你的這段代碼不能動(dòng)態(tài)更新"count"文本框中的值。
2018-07-30
代碼沒錯(cuò)? 把js代碼放在html代碼的后面就可以運(yùn)行
2018-07-16
在js中函數(shù)名可以把它當(dāng)成指針,函數(shù)名加上括號(hào)就代表函數(shù)立即執(zhí)行,這里是把startCount函數(shù)作為定時(shí)器的一個(gè)參數(shù)傳入,如果加上括號(hào)函數(shù)立即執(zhí)行,傳入的參數(shù)就變成了函數(shù)的返回值,所以不能執(zhí)行,望采納 謝謝!。
舉報(bào)