JavaScript設計模式-單例模式
在js中使用單例模式可以防止名稱沖突,也便于統一管理js。/study/
/**
- 使用單例模式創建一個應用程序名稱空間
- 調用$(document).ready(myApp.init) */ var myApp = { //初始化 init : function(){}, dshboard : function(){}, controlPanel : function(){}, appSettings : function(){} }
/**
- 根據開發人員和網站結構,拆分單個單例模式。 這樣開發人員負責自己的js文件,便于管理,防止沖突。
- 等到開發完成之后再把多個js文件合成一個js文件。減少與客戶端的http連接次數。
- */
//一個站點一個js命名空間
var myApp = {
//common包含項目的通用代碼,由主管負責
common : {
} } //程序員A負責dashboard myApp.dashboard = { init : function(){init : function(){}
}, func1 : function(){}, func2 : function(){} } //程序員B負責controlPanel myApp.controlPanel = { ... }....
/**
- Module模式
- 由yahoo首席js架構師 Douglas Crockford 發明 *
- 特點:
- 相對于單例模式,增加私有方法,私有屬性的功能。
是一個自動執行的函數,也就是創建的時候返回公有方法和屬性的對象 */ var myApp = function(){ //私有變量和方法 var privateVarible = 1; var privateFunction = function(){};
//返回對象包含公有屬性和對象 return { init : function(){}, publicVariable : 42, publicFunction : function(){
//invoke private function or varible privateFunction();
} } }(/自動調用/);
//擴展Module模式 myApp.ExtendModul = function(){ //私有的部分 //返回公有 return { ... } }();
/**
- Garber-lrish模式
- 這個模式提供一個簡潔的工具,為在$(function(){})中運行的代碼提供一個統一的、可伸縮、可維護的方法
- [= = ! 好像用處不大] */</pre></span>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!