javascript深入理解系列文章网址
https://www.jianshu.com/p/451eed9094f5
继承是面试中经常会被问到的问题,所以小伙伴们一定要注意了,此篇文章一定要结合我的前几篇文章一起看,才会深入理解
一般来说构造函数的继承可以分为两步来实现,下面我们直接用实例来讲解
//父类动物
function Animal(){
//大部分动物有4条腿
this.leg=4;
}
Animal.prototype.run=function(){
console.log('跑');
}
//子类小猫
function Cat(name){
//第一步,使用call改变父类中this的指向
Animal.call(this);
this.name=name;
}
//第二步
//javascript中继承是使用原型去继承的,不像java,c++中是继承类的,所以把子类的原型指向父类的原型
//但是又不能直接写Cat.prototype=Animal.prototype;这样写他们的地址就一样了,子类改变父类也会跟着改变
//所以这里使用Object.create去创建
Cat.prototype=Object.create(Animal.prototype);
//第三步
//记得prototype改变以后,要去重新再指定一下constructor
Cat.prototype.constructor=Cat;
var miao=new Cat("xiaomao");
console.log(miao.leg);//4
miao.run();//跑
console.log(miao instanceof Animal);//true
console.log(miao instanceof Cat);//true
网友评论