# 前言

本文讲解 JavaScript 各种继承的实现方式和优缺点。

本文更像是一份笔记,因为红宝书写的太好了。

# 原型链继承

  • 缺点:
    • 引用类型的属性被所有实例共享
    • 创建子类时,无法向父类传参

# 借用构造函数(经典继承)

  • 优点:
    • 避免了引用类型的属性所有实例共享
    • 子类可以给父类传参
  • 缺点:方法都在构造函数中定义,每次创建实例的时候都会创建一遍方法

# 组合继承

  • 优点:解决了原型链继承和构造函数继承的问题
  • 缺点:调用了两次父类的构造函数

# 寄生组合继承

  • 优点:完美继承
  • 缺点:实现比较麻烦