原理:原型链继承 + 借用构造函数继承 原型链继承 负责将父类公有 继承为子类的公有属性 借用构造函数继承 负责将父类私有 继承为子类的私有属性

    缺点: 1.会把父类的私有属性继承过来两份 一份作为自己的私有 一份作为自己的公有 2.继承时,调用了两次父类

    1. function A() {
    2. this.a = '私有'
    3. }
    4. A.prototype.text = '公有'
    5. // 原型链继承 负责继承公有
    6. B.prototype = new A()
    7. B.prototype.constructor = B
    8. function B() {
    9. // 借用构造函数继承 负责继承私有
    10. A.call(this)
    11. }
    12. let b = new B()
    13. // text属性 是利用原型链继承 从父类继承过来的公有属性
    14. console.log(b.text) // '公有'
    15. // a属性 是利用借用构造函数 从父类继承过的私有属性
    16. console.log(b.a) // '私有'