简单!
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
};
只需包含一个构造函数来在你的模块中构造实例? – Bergi
请问之前请研究。关于模仿JavaScript中的类有很多文献(在线),包括StackOverflow中的一些问题。请回来一个更具体的问题。 – Bergi
架构我的应用程序建立在模块模式。目前,存在用于存储数据集的类模仿实例的问题。我可以使用构造函数模式,但它需要被重写为类。 –