關(guān)于clearTimeout清除標(biāo)記的問題
我點(diǎn)擊了多次setTimeout()之后啟動了多個計(jì)時器,但是每次都賦值給了i變量,按常理來說不應(yīng)該覆蓋變量所指向的計(jì)時器嗎?
為什么我點(diǎn)擊多次clearTimeout()之后計(jì)數(shù)增加確實(shí)變慢了,而且最后停了,這說明確實(shí)把每一個計(jì)數(shù)器都給刪除了呀。但是清除的是i變量指向的那個計(jì)數(shù)器呀。這里不太明白,為什么明明覆蓋了i所指向的計(jì)數(shù)器了執(zhí)行清除方法之后還能一個個的清除計(jì)數(shù)器
2017-06-08
這個返回的是一個計(jì)時器的id,每一個計(jì)時器在執(zhí)行的時候都會有自己的ID,就是沒有這個返回值,這個計(jì)時器也會運(yùn)行下去,你覆蓋的只是i只是這個變量,你不能做到覆蓋計(jì)時器,為什么能做到清理計(jì)時器,是因?yàn)?,不斷有新的函?shù)生成新的setTimeout, i的值也在變化,當(dāng)你點(diǎn)擊取消函數(shù)的時候,setTimeout會等這個取消函數(shù)執(zhí)行過以后一秒才開始執(zhí)行(即使這個取消函數(shù)執(zhí)行時間可以忽略不計(jì)),這時候就會把下一秒將要執(zhí)行的這個i給取消掉,(但是只會取消一個,因?yàn)楫?dāng)時的i值是唯一的)