美文网首页
2020-04-01 继承

2020-04-01 继承

作者: 兔兔为赢 | 来源:发表于2020-04-06 11:36 被阅读0次
    • 原型链继承
    Children.prototype = new Parents()
    

    缺点:引用类型会共享

    • 构造函数继承
    function Parents() {
      this.hobbies = ['music','reading']
    }
    function Children(){
        Person.call(this)
    }
    

    优点:不会共享,还可以给父类传参

    function Parents(name) {
      this.hobbies = ['music','reading']
      this.name = name  
    }
    function Children(){
        Parents.call(this, name)
    }
    

    缺点:函数也属于引用类型。所以每个实例里面的函数,虽然功能一样,但是却不是同一个函数

    继承方式 继承核心代码 优缺点
    原型链继承 Children.prototype = new Parents() 实例的引用类型共享
    构造函数继承 在子类(Children)里执行 Parents.call(this) 实例的引用类型不共享
    • 组合继承
      普通属性使用构造函数继承函数使用原型链继承
      call和prototype语句顺序无所谓,都调用一遍就行。
      缺点:会执行2次父类构造函数里面的代码。最完美的是寄生组合式继承

    to be continued...

    相关文章

      网友评论

          本文标题:2020-04-01 继承

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