工廠模式是軟件工程領域一種廣為人知的設計模式,這種模式抽象了創建具體對象的過程。考慮到在ECMAScript中無法創建類,開發人員就發明了一種函數,用函數來封裝以特定接口創建對象的細節,如下面的例子所示: var O=new Object();
O.name=name:
O.age=age;
O.Job=Job;
O.sayName=function(){
alert(this.name);
};
return O;
}
var personl=createPerson("Nicholas",29,"Software Engineer");
var person2=createPerson("Greg",27, ”Doctor”);
personl.sayName(); //"Nicholas"
person2.sayName(); //"Greg"
函數createPerson()能夠根據接受的參數來構建一個包含所有必要信息的Person對象。可以無數次地調用這個函數,而每次它都會返回一個包含三個屬性一個方法的對象。工廠模式雖然解決了創建多個相似對象的問題,但卻沒有解決對象識別的問題(即怎樣知道一個對象的類型)。隨著JavaScript的發展,又一個新模式出現了。接下來我們將介紹構造函數模式