工廠模式是軟件工程領(lǐng)域一種廣為人知的設(shè)計模式,這種模式抽象了創(chuàng)建具體對象的過程??紤]到在ECMAScript中無法創(chuàng)建類,開發(fā)人員就發(fā)明了一種函數(shù),用函數(shù)來封裝以特定接口創(chuàng)建對象的細(xì)節(jié),如下面的例子所示: 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"
函數(shù)createPerson()能夠根據(jù)接受的參數(shù)來構(gòu)建一個包含所有必要信息的Person對象??梢詿o數(shù)次地調(diào)用這個函數(shù),而每次它都會返回一個包含三個屬性一個方法的對象。工廠模式雖然解決了創(chuàng)建多個相似對象的問題,但卻沒有解決對象識別的問題(即怎樣知道一個對象的類型)。隨著JavaScript的發(fā)展,又一個新模式出現(xiàn)了。接下來我們將介紹構(gòu)造函數(shù)模式