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