在全部以前,咱們先了解一下,官方文檔對這兩個函數的解釋。
canvas
save()函數
Subsequent calls to translate,scale,rotate,skew,concat or clipRect, clipPath will all operate as usual, but when the balancing call to restore() is made, those calls will be forgotten, and the settings that existed before the save() will be reinstated.rest
大概的意思就是說:「當調用save函數後,對畫布進行平移、縮放、旋轉等操做都和日常沒有什麼兩樣,可是呢。當你調用restore()方法以後呢,在save方法調用以前的畫布的狀態將會恢復」。ip
通俗的來說,就是我調用save方法的同時,我會把畫布當前的狀態保存了,保存這個狀態以後,我進行的各類變換操做,其實我在這些變換操做的時候,其目的是爲了改變畫布中的某個元素的狀態,而不是整個畫布的狀態,因此在變換完成後,我經過調用restore方法,將我以前保存的畫布的狀態給恢復出來,這樣,對隨後的再在畫布上繪製什麼圖像都不會由於此次的變化而受到任何的影響。ci
一句話:文檔
save 保存canvas狀態cli
restore 恢復save保存的canvas狀態方法