构造函数的五种继承方法

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值