思想
將創(chuàng)建對象的工作推遲到子類(Factory)中去
和簡單工廠模式的區(qū)別
之前的簡單工廠坯约,每增加一個類同時還要修改工廠函數(shù),也就是修改兩處撵颊。
function Factory(type, content) {
if(this instanceof Factory) { // 判斷是否使用new關(guān)鍵字
return new this[type](content);
} else {
return new Factory(type, content);
}
}
Factory.prototype = {
Java: function (content) {
this.name = 'Java';
this.content = content;
},
JavaScript: function (content) {
this.name = 'JavaScript';
this.content = content;
},
Python: function (content) {
this.name = 'Python';
this.content = content;
}
}
var foo = new Factory('JavaScript', 'ECMA');
console.log(foo);
// [object Object] {
// content: "ECMA",
// name: "JavaScript"
// }