现象:
用canvas制作时钟,用不同的方式来调用setInterval,效果不同。(详细代码在后面)
用法一:
setInterval(drawClock,1000); //下一秒的时候,之前的时分秒针会消失,出现新的时分秒针(我想要的效果) function drawClock(){ drawFace(); drawNumbers(); drawTime(); //下一秒的时候,之前的时分秒针会消失,出现新的时分秒针(我想要的效果) }
用法二:
drawClock(); //上一秒的时分秒针没有消失(不想要的效果) function drawClock(){ drawFace(); drawNumbers(); setInterval(drawTime,1000); //上一秒的时分秒针没有消失(不想要的效果 }
问题:
为什么用方法一可以清除掉上一秒的时分秒针?而方法二不可以?
Code Here:
问了其他网友:因为用方法一,会覆盖原来的;方法二没有覆盖。所以看上去是正确的。这个启发了我对canvas覆盖/clear的性能关注。