首页 > 代码库 > JS原型和继承

JS原型和继承

1.创建对象的方式

工厂模式:使用简单的函数构造函数,为对象添加属性与方法,然后返回对象。这个模式后来被构造函数模式取代

构造函数模式:可以创建自定义引用类型,可以向创建内置对象实例一样使用new

原型模式:使用构造函数的prototype属性来指定那些应该共享的属性和方法。

组合使用狗仔函数模式与原型模式时,使用构造函数来定义实例属性,使用原型来定义共享的属性和方法。

2.继承

原型链继承共享的属性和方法,借助构造函数继承实例属性

function Person(name,sex){
    this.name=name;
    this.sex=sex;
}
Person.prototype.showName=function(){
    alert(this.name);
}
Person.prototype.showSex=function(){
    alert(this.sex);
}

function Worker(name,sex,job){
    Person.call(this,name,sex);
    this.job=job;
}
for(var in Person.prototype){
    Worker.prototype[i]=Person.prototype[i];
}
Worker.prototype.showJob=function(){
    alert(this.job);
}
var obj=new Worker(‘blue‘,‘女‘,‘计算机‘);
obj.showName();
obj.showSex();
obj.showJob();

3.一些基本概念

原型对象:每个构造函数都有一个属性---原型对象(prototype)。fun.prototype  就是fun的一个实例对象。就在fun创建的时候,就创建了一个它的实例对象并赋值给它的prototype。

原型对象的作用:主要用来继承

原型链:JS在创建对象的时候,无论是普通对象还是函数对象,都有一个叫_proto_的内置属性,用于指向创建它的函数对象的原型对象prototype  实例与原型的链条

总结:每个构造函数都有一个原型对象。原型对象都包含一个指向构造函数的指针,而实例都包含了一个指向原型对象的内部指针。

JS原型和继承