我的问题是关于js模块模式。有一个模块:
var moduleName = (function(self) {
self.init() = function(){
return self;
}
//Othert methods
return self;
}(moduleName || {}));
请告诉我如何使用此模式创建多个初始化(模仿类实例)?
答案 0 :(得分:0)
容易!
moduleName.init(); // Initialized once
moduleName.init(); // Initialized twice
如果要创建多个模块,请按照以下步骤调整代码,以遵循工厂模式:
var newModuleName = function() {
return ( function moduleName( self ){
self.init = function(){
return self;
};
//Other methods
return self;
}( {} ) );
}());
var module1 = newModuleName();
var module2 = newModuleName();
module1.init();
module2.init();
或者,使用传统的构造函数模式:
var moduleName = function() {
var self = this;
if ( !( self instanceof moduleName ) ){
return new moduleName();
}
self.init = function(){
return self;
};
//Other methods
};