有人进一步改进了模块模式,即在返回对象之前加入对其增强的代码。这种增强的模块模式适合那些单例必须是某种类型的实例,同时还必须添加某些属性和方法对其加以增强的情况。来看下面的例子:
var singleton=function(){
//私有变量和私有函数
var privateVariable=10;
function privateFunction(){
return false;
}
//创建对象
var object=new CustomType();
//添加特权(公有)属性和方法
object.publicProperty=true;
object.publicMethod=function(){
privateVariable++;
return privateFunction();
};
//返回这个对象
return object;
}();
如果前面演示模块模式的例子中的application对象必须是BaseComponet的实例,那么就可以使用一下代码。
var application=function(){
//私有变量和函数
var component=new Array();
//初始化
component.push(new BaseCOmponent());
//创建application的一个局部变量
va