首页 > 代码库 > 【javascript设计模式】构造器模式、模块模式、单例模式

【javascript设计模式】构造器模式、模块模式、单例模式

构造器模式(Constructor)

构造器模式是学习js最早接触的一种,实现主要如下:

1 function myObject(name){2   this.name = name;    3 }4 5 myObect.propotype = function sayName(){6   alert(this.name);  7 }

使用的时候需要new一个对象。

1 var myObj = new myObject(‘hello‘);2 myObj.sayName();

 

模块模式(Module)

模块模式主要用匿名函数、闭包形成一个可以拥有私有变量的环境,暴露接口给外部。传说中的模块化。

 1 var myObject = (function($){ 2     var myName = ‘‘; //私有变量 3     var sayName = function(){ 4         alert(myName); 5     }; 6     return{ 7         setName : function(name){ 8              myName = name; 9         },10         sayName : sayName11     }12 })(jQuery);

使用的时候拿来模块直接用就行了

1 myObject.setName(‘hello‘);2 myObject.sayName();

 

单例模式(Singleton)

单例模式可保证类只有一个实例,对象字面量就是单例模式的一种实现,另外也有。

 1 var myObject = (function(){ 2     var instance; //实例持有者 3     function init( name ){ 4         var myname = name; 5         var sayName = function(){ 6             alert(myname); 7         }; 8         return { 9             sayName : sayName10         };11     };12     return {13       getInstance : function(name){
        return instance || instance = init(name);18     }19 }20 })(jQuery);

调用的时候

1 var instan = myObject.getInstance(‘hello‘);2 instan.sayName();