JavaScript对象的几种创建方式

时间:2021-12-06 21:50:37

1.使用工厂模式创建对象

function createPerson(name,age,job){
var o = new Object();
o.name
= name;
o.age
= age;
o.job
= job;
o.sayName
= function(){
alert(
this.name);
};
return o;
}
var person1 = createPerson('Nike',29,'teacher');
var person2 = createPerson('Arvin',20,'student');

2.使用构造函数创建对象

function Person(name,age,job){
this.name = name;
this.age = age;
this.job = job;
this.sayName = function(){
alert(
this.name);
};
}
var person1 = new Person('Nike',29,'teacher');
var person2 = new Person('Arvin',20,'student');

3.原型模式创建对象

function Person(){}
Person.prototype.name
= 'Nike';
Person.prototype.age
= 20;
Person.prototype.jbo
= 'teacher';
Person.prototype.sayName
= function(){
alert(
this.name);
};
var person1 = new Person();
person1.sayName();

4.混合构造和原型模式

function Person(name,age,job){
this.name =name;
this.age = age;
this.job = job;
}
Person.prototype
= {
constructor:Person,
sayName: function(){
alert(
this.name);
};
}
var person1 = new Person('Nike',20,'teacher');

5.动态原型模式

function Person(name,age,job){
this.name=name;
this.age=age;
this.job=job;

if(typeof this.sayName!="function"){
Person.prototype.sayName
=function(){
alert(
this.name);
};
}
}