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