2020-04-01 继承

  • 原型链继承
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...

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容