构造函数的五种继承方法

1、使用call或apply绑定构造函数

animal.apply(this.arguments)

2、使用prototype属性

Cat.prototype=new Animal();

Cat.prototype.constructor=Cat;

var cat1=new Cat("大毛","黄色");

alert(cat1.species);//动物

3、直接集成prototype属性

function Animal(){}

Animal.prototype.species="动物";

Cat.prototype=Animal.prototype;

Cat.prototype.constructor=Cat;

var cat1=new Cat("大毛","黄色");

alert(cat1.species);//动物

4、利用空对象作为中介

var F=function(){};

F.prototype=Animal.prototype;

Cat.prototype=new F();

Cat.prototype.constructor=Cat;

将上面的方法封装成一个函数,便于使用:

function extend(Child.Parent){

var F=function(){};

F.prototype=Parent.prototype;

Child.prototype=new  F();

Child.prototype.constructor=Child;

Child.uber=Parent.prototype;

}

5、拷贝继承

function extend2(Child.Parent){

  var p=Parent.prototype;

 var c=Child.prototype;

for(var i in p){

     c[i]=p[i];

}

c.uber=p;

}

这个函数的作用,就是将父对象的prototype对象中的属性--拷贝给Child对象的prototype对象

原文地址:https://www.cnblogs.com/zzp0320/p/7245138.html