美文网首页JS学习笔记
JS对象(2)- 常见的继承方式

JS对象(2)- 常见的继承方式

作者: zh2443 | 来源:发表于2018-12-28 19:54 被阅读0次

本文归纳js中常见的几种继承方式。通过如下的对象作为示例的父对象:

1. 原型链继承  

    子类的原型指向父类的实例来实现继承:

      优点:

        1. 父类新增原型属性或方法,子类可以访问;

        2. 简单,容易实现

      缺点:

        1. 子类实例对象构建时,无法向父类构造函数传参;

        2. 只能继承一个父类;

        3. 所有子类实例都会继承的父类实例属性,这些继承往往是多余的。

2. 借用构造函数

    通过call或apply方法,调用父类构造函数实现继承:

    优点:

        1. 允许向父类构造函数传递参数,继承父类的属性;

        2. 可以通过调用多个父类对象实现一次继承多个父类对象;

    缺点:

        1. 只能继承父类的实例属性,无法继承原型属性;

        2. 每个子类的实例对象都需要调用一次父类对象方法达到继承效果,影响性能;

3. 组合继承(组合原型链继承和复用构造函数继承)

    该方式组合以上两种方式,实现继承:

    优点:

        1. 继承时运行想父类构造函数传参;

        2. 能够继承父类对象原型的属性;

    缺点:调用了2次父类构造函数,对性能有影响

4. 原型式继承(共享原型)

    该方式通过共享父类的原型实现继承(该模式类似于通过Object.create()创建对象):

    优点:只继承父类对象的原型属性,不继承多余的父类对象属性

    缺点:修改子类对象的原型,父类对象的原型也会跟着修改

5. 圣杯模式

    该模式通过一个继承函数,实现继承:

    优点:

        1. 完美的模式,只继承父类对象的原型属性,不继承多余的父类对象实例属性;

        2. 修改子类对象的原型对象不会影响到父类对象的原型

    缺点:无;

以上列举了常见的几种继承方式,可能还有一些方式,不过都是相应的变形。

相关文章

  • JS对象(2)- 常见的继承方式

    本文归纳js中常见的几种继承方式。通过如下的对象作为示例的父对象: 1. 原型链继承 子类的原型指向父类的实例来实...

  • JavaScript 继承

    继承是JS中非常内容,原因就是JS没有地道的继承方式,我们只能通过各种方式来模拟面向对象中的继承。下面介绍几种常见...

  • JavaScript常见的继承方式

    前言 JS作为面向对象的弱类型语言,继承也是其非常强大的特性之一。那么在JS中常见的继承方式有几种呢? 方式一、原...

  • JavaScript 10

    js继承的概念 1.通过原型链方式实现继承(对象间的继承) 2.类式继承(构造函数间的继承) 由于js不像Java...

  • 对象的继承

    JS 作为面向对象的弱类型的语言,继承是它非常强大的特征之一 JS继承实现的方式: 1.原型链继承2.构造函数继承...

  • js对象的三种继承方式

    js对象的三种继承方式转载 2017年06月23日 15:07:56 13300一,js中对象继承对象的js中有三...

  • 面向对象与原型-1

    面向对象的三大特性:封装继承多态 在js中常见的对象的创建方式: 上面两种创建方式,都有一个缺点,就是不能重用,需...

  • js常见的继承方式

    js常见的继承方式 1. 原型链继承 2. 构造函数继承 3. 组合式继承 4. 原型式继承 5. 寄生式继承 6...

  • JS高级 03

    JS实现继承的方式 1.属性拷贝 2.原型式继承 3.原型链继承 4.借用构造函数继承|伪对象继承|经典点继承 5...

  • js常见的继承方式

    1.原型链继承 基于原型链查找的特点,我们将父类的实例作为子类的原型,这种继承方式便是原型链继承。 Child.p...

网友评论

    本文标题:JS对象(2)- 常见的继承方式

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