美文网首页
javascript深入理解系列(四)——构造函数的继承(使用原

javascript深入理解系列(四)——构造函数的继承(使用原

作者: 悦者生存 | 来源:发表于2018-09-02 23:03 被阅读12次

    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
    

    相关文章

      网友评论

          本文标题:javascript深入理解系列(四)——构造函数的继承(使用原

          本文链接:https://www.haomeiwen.com/subject/cvgmwftx.html