JavaScript創建對象的七種方法
一、 工廠模式
創建:
function createPerson(name,behavior){
var p=new Object();
p.name=name;
p.behavior=behavior;
p.getInfo=function(){
alert(this.name+"在"+this.behavior)
}
p.getInfo();
}
var person=createPerson("張三",["打遊戲","看書"]);
二、 構造函數模式
創建:
function createPerson(name,behavior){
this.name=name;
this.behavior=behavior;
this.getInfo=function(){
alert(this.name+"在"+this.behavior)
}
}
var person=new createPerson("張三",["打遊戲","看書"]);
person.getInfo();
三、原型模式
創建:
function createPerson(){}
createPerson.prototype.name="張三";
createPerson.prototype.behavior=["打遊戲","看書"];
createPerson.prototype.getInfo=function(){
alert(this.name+"在"+this.behavior)
}
var person=new createPerson();
person.getInfo();
四、組合模式(構造函數與原型)
創建:
function createPerson(name,behavior){
this.name=name;
this.behavior=behavior;
}
createPerson.prototype.getInfo=function(){
alert(this.name+"在"+this.behavior)
}
var person=new createPerson("張三",["打遊戲","看書"]);
person.getInfo();
五、動態原型模式
創建:
function createPerson(name,behavior){
this.name=name;
this.behavior=behavior;
if(typeof this.getInfo!="function"){
createPerson.prototype.getInfo=function(){
alert(this.name+"在"+this.behavior);
}
}
}
var person=new createPerson("張三",["打遊戲","看書"]);
person.getInfo();
六、寄生構造函數模式
創建:
function createPerson(name,behavior){
var p={};
p.name=name;
p.behavior=behavior;
p.getInfo=function(){
alert(this.name+"在"+this.behavior)
}
p.getInfo();
}
var person=new createPerson("張三",["打遊戲","看書"]);
七、穩妥構造函數模式
創建:
function createPerson(name,behavior){
var p={};
p.getInfo=function(){
alert(name+"在"+behavior)
}
p.getInfo();
}
var person=new createPerson("張三",["打遊戲","看書"]);
參考網址:http://www.cnblogs.com/ifat3/p/7429064.html
JavaScript創建對象的七種方法