<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        JavaScript架構設計Module模式用法實例詳解

        來源:懂視網 責編:小采 時間:2020-11-27 20:15:19
        文檔

        JavaScript架構設計Module模式用法實例詳解

        JavaScript架構設計Module模式用法實例詳解:module模式是一個比較流行的設計模式,它可以通過大括號封裝私有的變量,方法,狀態的,通過包裝這些內容,一般全局的對象不能直接訪問,在這個設計模式里,只返回一個API,其它的內容全部被封裝成私有的了。另外,這個模式和自執行的函數表達式比較相似,唯
        推薦度:
        導讀JavaScript架構設計Module模式用法實例詳解:module模式是一個比較流行的設計模式,它可以通過大括號封裝私有的變量,方法,狀態的,通過包裝這些內容,一般全局的對象不能直接訪問,在這個設計模式里,只返回一個API,其它的內容全部被封裝成私有的了。另外,這個模式和自執行的函數表達式比較相似,唯

        module模式是一個比較流行的設計模式,它可以通過大括號封裝私有的變量,方法,狀態的,通過包裝這些內容,一般全局的對象不能直接訪問,在這個設計模式里,只返回一個API,其它的內容全部被封裝成私有的了。

        另外,這個模式和自執行的函數表達式比較相似,唯一的不同是module返回的是對象,而自執行函數表達式返回的是function。

        眾所周知, JavaScript不想其它語言一樣有訪問修飾符,不能為每個字段或者方法聲明private,public修飾符,那這個模式我們是如何實現的呢?那就是return一個對象,里面包括一些公開的方法,這些方法有能力去調用內部的對象。

        看一下,下面的代碼,這段代碼是一個自執行代碼,聲明里包括了一個全局的對象basketModule, basket數組是一個私有的,所以你的整個程序是不能訪問這個私有數組的,同時我們return了一個對象,其內包含了3個方法(例如addItem,getItemCount,getTotal),這3個方法可以訪問私有的basket數組。

        同時注意,我們return的對象直接賦值給了basketModule,所以我們可以像下面一樣使用:

        那在各個流行的類庫(如Dojo, jQuery)里是如何來做呢?

        Dojo

        Dojo試圖使用dojo.declare來提供class風格的聲明方式,我們可以利用它來實現Module模式,例如如果你想再store命名空間下聲明basket對象,那么可以這么做:

        結合dojo.provide一起來使用,非常強大。

        YUI

        下面的代碼是YUI原始的實現方式:

        jQuery

        jQuery里有很多Module模式的實現,我們來看一個不同的例子,一個library函數聲明了一個新的library,然后創建該library的時候,在document.ready里自動執行init方法。

        對象自面量

        對象自面量使用大括號聲明,并且使用的時候不需要使用new關鍵字,如果對一個模塊里的屬性字段的publice/private不是很在意的話,可以使用這種方式,不過請注意這種方式和JSON的不同。對象自面量:var item={name: "tom", value:123} JSON:var item={"name":"tom", "value":123}。

        CommonJS

        關于 CommonJS的介紹,這里就不多說了,之前很多文章都有介紹,我們這里要提一下的是CommonJS標準里里有2個重要的參數exports和require,exports是代表要加載的模塊,require是代表這些加載的模塊需要依賴其它的模塊,也需要將它加載進來。

        有很多CommonJS標準的模塊加載實現,我比較喜歡的是RequireJS,它能否非常好的加載模塊以及相關的依賴模塊,來一個簡單的例子,例如需要將圖片轉化成ASCII碼,我們先加載encoder模塊,然后獲取他的encodeToASCII方法,理論上代碼應該是如下:

        但是上述代碼并沒用工作,因為encodeToASCII函數并沒用附加到window對象上,所以不能使用,改進以后的代碼需要這樣才行:

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JavaScript架構設計Module模式用法實例詳解

        JavaScript架構設計Module模式用法實例詳解:module模式是一個比較流行的設計模式,它可以通過大括號封裝私有的變量,方法,狀態的,通過包裝這些內容,一般全局的對象不能直接訪問,在這個設計模式里,只返回一個API,其它的內容全部被封裝成私有的了。另外,這個模式和自執行的函數表達式比較相似,唯
        推薦度:
        標簽: 模式 使用 用法
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 精品免费国产一区二区三区| 99re热免费精品视频观看 | 成人永久免费福利视频网站| www亚洲精品少妇裸乳一区二区 | 精品国产污污免费网站aⅴ| 韩国欧洲一级毛片免费| 亚洲免费视频播放| 国产AV日韩A∨亚洲AV电影| a级片在线免费看| 性色av无码免费一区二区三区| 亚洲电影日韩精品| 亚洲成人在线免费观看| 一级特黄录像视频免费| 91成人免费在线视频| 亚洲天堂中文字幕在线| 亚洲国产中文在线二区三区免| 色欲色香天天天综合网站免费| 国产免费人成视频在线观看| 亚洲最新视频在线观看| 直接进入免费看黄的网站| 亚洲av无码乱码在线观看野外| 一边摸一边桶一边脱免费视频| 亚洲一区二区三区在线观看精品中文| 中文字幕亚洲色图| 热久久这里是精品6免费观看| 精品国产综合成人亚洲区| 国产亚洲男人的天堂在线观看| 亚洲第一页综合图片自拍| 性xxxxx大片免费视频| 亚洲国产美女视频| 国产精品免费一级在线观看| 亚洲videos| 久久不见久久见免费视频7| 亚洲精品偷拍视频免费观看| 亚洲无码一区二区三区| 国产成人精品免费视频大| 亚洲精品精华液一区二区| 在线观看免费大黄网站| 亚洲永久在线观看| 2021久久精品免费观看| 国产偷国产偷亚洲清高APP|