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