請問為什么這樣停不下來?求指點。。。。
var?num=0; function?startCount() { document.getElementById("second").value=num; num=num+1; var?i=setTimeout("startCount()",1000); } ?function?stopCount(){ ??clearTimeout(i);
如上,如果我將 ?var i ?寫在函數內執行時停不下來,但是若將var i寫在函數外,像這樣:
var num=0;
var i;
function startCount()
{
document.getElementById("second").value=num;
num=num+1;
i=setTimeout("startCount()",1000);
}
?function stopCount(){
? clearTimeout(i);
? }
則可以運行,這是為什么?
2015-07-23
將 ?var i ?寫在函數內是局部變量,i只對該函數內起作用,也就是只起一個局部變量的作用,所以它只有setTimeout的作用,外部的函數的clearTimeout對i無調用的作用。
若將var i寫在函數外,它就是一個全局變量。