原型链继承

代码

 function Parent(x) {
        this.x = x
        this.Hello = function () {}
    }
    Parent.prototype.getx = function () {
        console.log('getx ===>', this.x);
    }

    function Sub(y) {
        this.y = y
    }

    Sub.prototype = new Parent(100)
    Sub.prototype.constructor = Sub
    Sub.prototype.gety = function () {
        console.log('gety ===>', this.y);
    }
    let sub = new Sub(200)
    console.log(sub);

    原型链继承就是让子类的prototype指向父类的实例。


    再让prototype的constructor重新指向它关联的构造函数。用来补全原型(prototype),每个prototype原型都有一个constructor属性,指向它关联的构造函数。


     后面我们又通过子类的prototype,写了一个公有的方法。


     然后通过new出来的子类的实例可以获取自己的私有属性和方法。并且每个实例对象都有一个__proto__属性,指向自身构造函数的prototype。


    但在上面我们让子类的prototype重新指向了父类的实例。就等于把父类的实例当成子类的prototype。父类的实例上有自己的私有属性和方法。


     我们就可以通过子类的显示原型prototype获取到父类的私有属性和方法。


     父类的实例有一个__proto__指向父类的prototype,父类的prototype上有父类的公有属性和方法,我们就可以通过原型链查找到父类的公有属性和方法。父类的prototype,有一个__proto__指向object.prototype。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值