javascript学習(9)——[デザインモード]単例

3016 ワード

単一の例のモードは、みんながこれに対してよく知らないと信じています.私たちは主にjavascriptの中のいくつかのよくあるデザインパターンを説明します.
(1).普通の単量体(2).局所変数を持つ強い単量体(3).不活性単量体(4).分岐単量体
紹介します.
(1)普通の単体
 
/**

 *      JS        

 *                ,

 *                        

 */

(function(){

	//           

	//                   

	var UserInfo = {

		name:"hello",

		code:"00101",

		deptName:'PD',

		deptCode:'PD001',

		getName : function(){

			return "hello";

		}

	}

	alert(UserInfo.getName());

	//           

	//         ,                  

	//     .    

	var comm = {};

	comm.UserInfo = {

		name:"hello",

		code:"00101"		

	}

	comm.funcInfo ={

		funcName:'',

		funcCode:""

	}

	//       ,        ,       JS  

	//             

	//                 

	//           .........

})()
(2)局所変数を持つ強力なモノマー
 
 
/**

 *      JS        

 *                ,

 *                        

 */

(function(){

	//    Ajax  

	function Ajax(){}

	Ajax.request = function(url,fn){

		if(true){

			fn("abc","EXTJS4");

		}

	}

	//            01        

	var UserInfo = (function(){

		//                 

		var name = "";

		var code = "";

		//  Ajax          

		Ajax.request("abc,function(n,c){

			name = n;

			code = c;

		})

		return {

			name:name,

			code:code

		}

	})()

	//  

	alert(UserInfo.name)

})()
returnは直接にあなたに一例を返します.
 
(3)不活性モノマー
 
/**

 *      JS        

 *                ,

 *                        

 */

(function(){

	//    Ajax  

	function Ajax(){}

	Ajax.request = function(url,fn){

		if(true){

			fn("abc","EXTJS4");

		}

	}

	//           01        

	var UserInfo = (function(){

		var userInfo = "";//    

		function init(){

			//                 

			var name = "";

			var code = "";

			//  Ajax          

			Ajax.request("abc",function(n,c){

				name = n;

				code = c;

			})

			return {

				name:name,

				code:code

			}

		}

		return {

			getInstance : function(){

				if(userInfo){

					return userInfo;

				}else{

					userInfo = init();

					return userInfo;	

				}

			}

		}

	})()

	alert(UserInfo.getInstance().name)

})()
それに対して、第三の方法に行くと、私達は上で私達のjavaの中で単一の例を編む影を見ました.
 
(4)分岐単体
 
/**

 *     

 *   :

 *   Ajax                XHR(XMLHttpRequest)

 *                    (PCAT2)

 */

(function(){

	//        

	var screenWidth = window.screen.width;

	var screenheigth = window.screen.heigth;

	var portalInfo = (function(){

		var $12801024 = {info:'1,2,3,5'}

		var $1024768 = {info:'4,2,1,2'}

		if(screenWidth == 1280){

			return $12801024;

		}else if(screenWidth == 1024){

			return $1024768;

		}

	})();

	alert(portalInfo.info);

})()

//     javascript     ,       
その中の第四の方法は実際のプロジェクトでもよく使われています.