1. 程式人生 > >JavaScript創建對象的七種方法

JavaScript創建對象的七種方法

OS person www 動態 get func function fun name

一、 工廠模式

創建:

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創建對象的七種方法