我遵循了Stefanov相当简单的模块模式。一切都很好,直到设计发生巨大变化:我必须生成我的模块的多个实例 这是一些简短的示例代码,显示了这种模式的样子:
var MYAPP = MYAPP || {};
MYAPP = (function(){
// private properties
var connector = "connector.php",
my_list = [],
current_item = {},
beforeRender = false;
// private methods
_addCurrentItem = function(amount){
},
// public methods
add = function(amount){
amount += 5;
_addCurrentItem(amount);
}
// public API
return {
add: add
};
}());
只使用MYAPP
的一个实例,一切都很好。但现在我需要更多实例,并发现我无法以这种方式实例化我的模块。 var my_instance = new MYAPP;
不起作用,因为没有构造函数。
使模块模式可实现的最快和最好的方法是什么?
感谢您的任何帮助和建议!
答案 0 :(得分:1)
怎么样:
App
)像这样:
var MYAPP = MYAPP || {};
var App = function(){
// private properties
var connector = "connector.php",
my_list = [],
current_item = {},
beforeRender = false;
// private methods
_addCurrentItem = function(amount){
},
// public methods
add = function(amount){
amount += 5;
_addCurrentItem(amount);
}
// public API
return {
add: add
};
};
MYAPP = new App();
MYOTHERAPP = new App();
答案 1 :(得分:0)
返回{ init:function(){}}
上面的代码有效地实例化了模块。