继承

  • 类与实例

    • 类的声明

    • 生成实例

  • 类与继承

    • 如何实现继承

    • 继承的几种方式

类的声明

  • 类声明 构造函数

function Animal1() {
  this.name = 'animal';
}
  • ES6中class的声明

class Animal2 {
  constructor() {
    this.name = 'animal';
  }
}

1.构造函数方式进行继承

  • 但是如果要继承原型对象上的方法是没办法继承的

2.借助原型链实现继承

  • s1与s2之间不相互隔离

  • 原型链中共用

3.组合方式

  • 父类构造函数执行了多次,没有必要的重复执行

4.组合方式改进1

  • instanceofconstructor

  • 如何区分是子类实例化的还是父类实例化的

5.组合方式改进2

  • 主要是在继承的时候让 子类的原型对象 =

    Object.Create(父类构造函数的原型对象)

  • 再通过改变子类的原型对象的constructor,因为此时的constructor的指向是父类原型对象的构造函数

6.原型式继承

  • ES5中主要使用Object.create()去创建对象

贴近实际开发原型链继承的例子

写一个原型链继承的例子

  • 推荐 阮一峰老师👨‍🏫的两篇文章:

Javascript 面向对象编程(一):封装

Javascript继承机制的设计思想

最后更新于

这有帮助吗?