2016-08-18
javascript设计模式:(二)module模式
这是一种比较常见的模式,用于模拟类的概念,通过这种方式,还可以使一个单独的对象拥有公有/私有方法和变量,从而屏蔽来自全局作用域的特殊部分。代码如下:
//书写方法有多种,建议这种。
var testModule=(function(){
var counter=0;
return {
incrementCounter:function(){
counter++;
},
resetCounter:function(){
counter=0;
},
getCounter:funciton(){
return counter;
}
};
})();
//用法
testModule.incrementCounter(); //1
testModule.incrementCounter(); //2
testModule.getCounter(); //2
testModule.counter; // undefined
如上例子,简洁且方便。又不暴露私有数据,且方便调试。
但相对来说,还有部分缺点,比如:如果需要改变私有变量(counter),实际上我们需要修改每个与之相关的方法。这样来说,私有方法反而成为了某种意义上的负担。也不太好集成。
适用场景:和业务相关类,把方法当成一个函数集合在一起。
完