為什么setInterval(clock,1000);要省略
求解答! 為什么函數(shù)之后不能是 setInterval(clock,1000); var i=setInterval(clock,1000); 呢? 我總覺(jué)得這是兩個(gè)任務(wù),首先是一個(gè)周期性執(zhí)行的計(jì)時(shí)指令;其次是一個(gè)點(diǎn)按鈕會(huì)停止上述任務(wù)的指令。 那為什么setInterval(clock,1000);要省略呢?
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>計(jì)時(shí)器</title>
<script type="text/javascript">
? ?function clock(){
? ? ? var time=new Date(); ? ? ? ? ? ? ? ?
? ? ? document.getElementById("clock").value = time;
? ?}
? ? ?setInterval(clock,1000);
? ? ?var i=setInterval(clock,1000);
</script>
</head>
<body>
? <form>
? ? <input type="text" id="clock" size="50" ?/>
? ? <input type="button" value="Stop" onclick="clearInterval(i)"" ?/>
? </form>
</body>
</html>
2016-10-30
先了解:在js里,函數(shù)后面只要有()就是執(zhí)行函數(shù)的意思;
當(dāng)var i=setInterval(clock,1000)這么賦值的時(shí)候,setInterval同樣會(huì)執(zhí)行;
因此如果2個(gè)都寫(xiě),就相當(dāng)于執(zhí)行了2次setInterval函數(shù),那么后面的clearInterval只能停止一次,還剩下一次就無(wú)法停止了;
如果還有不清楚,就回復(fù)我
2016-10-29
var i=setInterval(clock,1000);相當(dāng)于var i;i=setInterval(clock,1000);