js面向對象實現圖片輪播插件

這個demo的學習過程很值得記錄下來。css


前言:學習了一遍js的面向對象,想找點東西練練手,就上網找了個用js面向對象實現圖片輪播插件:html

http://www.codefans.net/jscss/code/3327.shtml git


功能:新建一個實例就是一個圖片輪播,能夠新建多個,可是實例與實例之間是干擾的。github


過程:看視頻教程說,第一次搞面向對象,把面向過程改頭換面就能夠了。本身就死磕地先寫了原生,再改成面向對象。segmentfault


寫原生的時候,遇到的問題:ide

  1. 不知道怎麼樣中止計時器:clearInterval、clearTimeout函數

  2. 設計計時器設計錯了,以前我覺得設置一個setInterval爲1000ms而後再設置一個setTimeout爲1000ms。這樣效果是出來了,可是很差控制;更好的設計是外面是一個setInterval爲2000ms,裏面也設一個setInterval爲1000ms,而後用clearInterval來中止裏面的那個學習

  3. 寫的時候,邏輯很混亂,不過呢,如今回想起來,把最小的單位功能先寫出來,再考慮其餘功能與這個子功能的關係,這樣寫的話比較容易理清楚他們的邏輯。(邏輯問題那晚都沒理清楚,很沮喪,作了一些不理智的事情,也發現本身抵挫能力須要增強this

  4. 無論怎麼,我寫出來了。加油!.net


寫面向對象的時候,遇到的問題:

http://segmentfault.com/q/1010000003746641

  1. 我想了好久,也沒想出來,查不來,而後就問QQ羣的人和上SF了,其實我排錯的思路是正確的,找到錯誤是在哪部分上,可是我在那個部門沒有注意細節,就是var _this=this!我沒有加var!意味着_this是全局變量。

  2. 找到答案以後,再聯繫一下本身以前的猜測,就是什麼讓他們合併在一塊兒了,我意味是prototype的問題,可是我直接把prototype幹掉,放在構造函數裏面,console.log出來的如出一轍!我就蒙了!之後就能夠在這裏找緣由。


總結:寫程序的時候,除了邏輯,還有細節,這些細節,實際上是習慣,之後要多在習慣上面下苦工啊!

代碼和圖片都放在個人github裏了:

https://github.com/Rockergmail/jsdemo/tree/objectorient/oo/picRobin

相關文章
相關標籤/搜索