概念
模块模式的思路 就是 就是单例模式添加私有属性和私有方法,减少全局变量的使用。
简单的代码结构:
var singleMode = (function(){ // 创建私有变量 var privateNum = 100; // 创建私有函数 function privateFunc(){ // 实现自己的业务逻辑代码 } // 返回一个对象包含公有方法和属性 return { publicMethod1: publicMethod1, publicMethod2: publicMethod1 }; })();
什么时候使用模块模式?
如果我们必须创建一个对象并对某些对象进行初始化时,同时还要公开访问这些私有数据的方法,name这个时候我们就可以使用模块模式了。
增强的模块模式
增强的模块模式的使用场合是:适合那些单列必须是某种类型的实例,同时还必须添加某些属性或方法对其加以增强的情况。
function CustomType() { this.name = "GaoSir"; }; CustomType.prototype.getName = function(){ return this.name; } var application = (function(){ // 定义私有 var privateA = "privateA"; // 定义私有函数 function privateMethodA(){}; // 实例化一个对象后,返回该实例,然后为该实例增加一些公有属性和方法 var object = new CustomType(); // 添加公有属性 object.publicA = "publicA"; // 添加公有方法 object.publicB = function(){ return privateA; } // 返回该对象 return object; })();
console.log(application.publicA);// publicA
console.log(application.publicB()); // privateA
console.log(application.name); // GaoSir
console.log(application.getName());// GaoSir