JavaScript原型

一、引入:为多个对象统一添加属性

首先看下面一段程序

function Person(perName,perAge){

this.perName = perName;

this.perAge = perAge;

this.toString = function(){

return "PersonName="+this.perName+" PersonAge="+this.perAge;

};

}

var per01 = new Person("Tom", 20);

var per02 = new Person("Jerry", 25);

console.log(per01.toString());

console.log(per02.toString());

 

执行结果:

PersonName=Tom PersonAge=20

PersonName=Jerry PersonAge=25

 

在这段程序中声明了一个构造器函数Person,使用这个构造器函数创建了两个对象,并在控制台中进行了显示。

现在如果我们需要给每个Person对象都添加一个gender属性,最直接的做法可能是这样:

function Person(perName,perAge,gender){

this.perName = perName;

this.perAge = perAge;

this.gender = gender;

this.toString = function(){

return "PersonName="+this.perName+" PersonAge="+this.perAge+" PersonGender="+this.gender;

};

}

var per01 = new Person("Bob", 20, "male");

var per02 = new Person("Kate", 25, "female");

console.log(per01.toString());

console.log(per02.toString());

 

执行结果:

PersonName=Bob PersonAge=20 PersonGender=male

PersonName=Kate PersonAge=25 PersonGender=female

 

可是这样做有一个问题:如果Person这个构造器函数不是我们创建的,我们也不能修改它,还能否添加属性呢?

当然可以,使用JavaScript的原型机制就可以做到。

 

 

本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源,欢迎大家关注尚硅谷公众号(atguigu)了解更多。