2 回答

TA貢獻(xiàn)26條經(jīng)驗(yàn) 獲得超10個(gè)贊
Javascript中function代表的是對象, 你放在外面是全局變量,你要是想在里面使用,每次調(diào)用一次StartMove是不是timer就會(huì)初始化為null呢?當(dāng)然就會(huì)出現(xiàn)問題了...

TA貢獻(xiàn)22條經(jīng)驗(yàn) 獲得超10個(gè)贊
當(dāng)timer=null放在外面的時(shí)候。全部setInterval,也就是每一次調(diào)用StarMove,共用一個(gè)timer變量來作原來定時(shí)器,clearInterval(timer)就可以清除掉之前的那一個(gè)定時(shí)器,再重新賦值給定時(shí)器。
當(dāng)timer=null放在函數(shù)里面的時(shí)候。每一個(gè),就是每一次onmouseover,調(diào)用函數(shù)StarMove時(shí),都會(huì)新建一個(gè)var timer,然后再clearInterval(timer)就清除不了之前的定時(shí)器了。所以這時(shí),每一次onmouseover時(shí),都會(huì)疊加一個(gè)定時(shí)器。你就會(huì)看到方塊的速度變快了。
添加回答
舉報(bào)