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