JS 的應(yīng)用開(kāi)發(fā)初探(mootools)
基于js的應(yīng)用開(kāi)發(fā)總結(jié)起來(lái)主要有如下幾點(diǎn):
封裝粒度
常用功能封裝為可重復(fù)使用的組件,需要合理選擇組件封裝粒度,粒度過(guò)大不便于復(fù)用,粒度過(guò)小則得不償失。
代碼結(jié)構(gòu)規(guī)劃
吸收傳統(tǒng)軟件開(kāi)發(fā)的思想將代碼按功能劃分為不同的區(qū)塊:初始化,事件綁定,事件邏輯處理,外部Callback調(diào)用
Js的面向?qū)ο?
簡(jiǎn)單起見(jiàn)可以使用構(gòu)造函數(shù)(其實(shí)就是普通的Function)+ prototype定義,雖然看起來(lái)不是很優(yōu)雅不過(guò)卻是比較直接的解決辦法。演示代碼中使用了Mootools類庫(kù),相比jQuery來(lái)說(shuō),這個(gè)類庫(kù)的面向?qū)ο筇匦允褂闷饋?lái)個(gè)人感覺(jué)更好一些,當(dāng)然也可以使用它自帶的Class申明方式來(lái)編寫你自己的Class:
Meta.Controls.Pager = new Class({
Implements: [Events, Options],
options: {
pageIndex :1, // 當(dāng)前頁(yè)碼, 從1開(kāi)始
size : 10, // 每頁(yè)顯示記錄數(shù)
maxButtons : 5,// 顯示的分頁(yè)按鈕數(shù)量
showPageSize:true, // 顯示分頁(yè)大小選項(xiàng).
sizeArray:[10, 25]
},
initialize: function (A) {
this.setOptions(A);
this.pageIndex = this.options.pageIndex;
this.size = this.options.size;
this.maxButtons = this.options.maxButtons;
this.itemCount = 0;
this.pageCount =0 ;
},
......
}
這樣的方式也是不錯(cuò)的選擇,代碼邏輯結(jié)構(gòu)清晰一目了然。
單元測(cè)試
通常認(rèn)為瀏覽器上的js 應(yīng)用要做單元測(cè)試不好做,原因主要是跟DOM關(guān)系太緊密,但也不是完全沒(méi)有辦法,比如Google的Closure就做得不錯(cuò),使用Mock的對(duì)象來(lái)模擬Dom元素并解耦代碼邏輯與Dom對(duì)象操作。
下面是本次實(shí)例的代碼,感興趣的童鞋自行下載。
- JavaScript+CSS實(shí)現(xiàn)仿Mootools豎排彈性動(dòng)畫菜單效果
- JS實(shí)現(xiàn)Fisheye效果動(dòng)感放大菜單代碼
- JS+CSS實(shí)現(xiàn)的經(jīng)典圓角下拉菜單效果代碼
- JS實(shí)現(xiàn)帶有3D立體感的銀灰色豎排折疊菜單代碼
- JS實(shí)現(xiàn)的左側(cè)豎向滑動(dòng)菜單效果代碼
- JS+CSS實(shí)現(xiàn)另類帶提示效果的豎向?qū)Ш讲藛?/a>
- JS實(shí)現(xiàn)的簡(jiǎn)潔二級(jí)導(dǎo)航菜單雛形效果
- JS+CSS相對(duì)定位實(shí)現(xiàn)的下拉菜單
- JS實(shí)現(xiàn)的仿東京商城菜單、仿Win右鍵菜單及仿淘寶TAB特效合集
- JS基于Mootools實(shí)現(xiàn)的個(gè)性菜單效果代碼
相關(guān)文章
淺析javascript中函數(shù)聲明和函數(shù)表達(dá)式的區(qū)別
這篇文章主要介紹了淺析javascript中函數(shù)聲明和函數(shù)表達(dá)式的區(qū)別,需要的朋友可以參考下2015-02-02javascript實(shí)現(xiàn)頁(yè)面滾屏效果
本文主要介紹了javascript實(shí)現(xiàn)頁(yè)面滾屏效果的方法,具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-01-01window.open的頁(yè)面如何刷新(父頁(yè)面)上層頁(yè)面
在開(kāi)發(fā)過(guò)程中會(huì)經(jīng)常遇到window.open打開(kāi)的頁(yè)面,同時(shí)問(wèn)題出現(xiàn)了如何刷新上層頁(yè)面呢?本文將詳細(xì)介紹,需要了解的朋友可以參考下2012-12-12一個(gè)JavaScript獲取元素當(dāng)前高度的實(shí)例
這篇文章主要為大家介紹了一個(gè)JavaScript獲取元素當(dāng)前高度的實(shí)例,比較實(shí)用,建議新手朋友們可以看看2014-10-10JS實(shí)現(xiàn)多張圖片預(yù)覽同步上傳功能
這篇文章主要介紹了JS實(shí)現(xiàn)多張圖片預(yù)覽同步上傳功能的相關(guān)資料,需要的朋友可以參考下2017-06-06javascript嚴(yán)格模式詳解(含嚴(yán)格模式與非嚴(yán)格模式的區(qū)別)
這篇文章主要介紹了javascript嚴(yán)格模式詳解(含嚴(yán)格模式與非嚴(yán)格模式的區(qū)別),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11JavaScript程序員應(yīng)該知道的45個(gè)實(shí)用技巧
在這篇文章中,我將分享一組JavaScript的技巧、竅門和最佳實(shí)踐,這些都是JavaScript程序員應(yīng)該知曉的,不管他們是使用在瀏覽器/引擎上,還是服務(wù)器端(SSJS——Service Side JavaScript)JavaScript解釋器上2014-03-039102了,你還不會(huì)移動(dòng)端真機(jī)調(diào)試嗎
這篇文章主要介紹了9102了,你還不會(huì)移動(dòng)端真機(jī)調(diào)試嗎,本文詳細(xì)的介紹了3種移動(dòng)端真機(jī)調(diào)試方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03JavaScript駕馭網(wǎng)頁(yè)-CSS與DOM
DOM是種符合萬(wàn)維網(wǎng)標(biāo)準(zhǔn)的HTML操縱方式,它能比innerHTML特性達(dá)成更多操控功能。這篇文章主要介紹了JavaScript駕馭網(wǎng)頁(yè)-CSS與DOM的相關(guān)資料,需要的朋友可以參考下2016-03-03微信小程序?qū)崿F(xiàn)長(zhǎng)按拖拽排序功能
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)長(zhǎng)按拖拽排序功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05