模块模式(或)原型模式
用例:我必须创建多个对象,但是基类没有得到任何派生类,我可以使用具有公共全局函数的模块模式而不是原型。
例如:
代码1 :(模块模式)
var globals = {
method1 : function(){
console.log("global method");
}
}
function closureModule(){
obj = {};
obj.commonMethod = globals.method1;
function pvtMethod(){
console.log("private");
}
obj.privateMethod = pvtMethod
return obj;
}
var o1 = closureModule();
var o2 = closureModule();
.
.
.
.
var o100 = closureModule();
代码2 :(原型模式)
function base(key){
this.KEY = key;
}
base.prototype.commonMethod = function(){
console.log("common Method", this);
}
var o1 = new base("0");
var o2 = new base("1");
.
.
.
.
var o100 = new base("100");
答案 0 :(得分:0)
模块模式对于通过隐藏内部实现细节来强制执行适当的封装非常有用。
如果您只是希望同一“类”的多个实例共享公共功能,那么使用prototype
是正确的方法。