继承
- 继承:让一个不具有某个功能的对象,执行了另一个具有这个功能的对象的这个功能
- 对象与对象之间的继承
- 原型和实例
- 类与类之间的继承
- 不能直接实现,通过一些处理方式实现
- 对象与对象之间的继承
- 构造函数继承(改变this指向继承)
- 简单,方便,易操作
- 多继承(不允许出现重复属性)
- 只能继承构造函数内的属性或方法,不能继承原型上的属性或方法
- 原型继承
- 原型对象继承 - 原型对象的拷贝
- 注意对象的深浅拷贝
- 只能继承原型上的方法或属性,不能继承构造函数内的方法和属性
- 多继承
- 原型链继承 - 增加原型链的层数
- 既能继承构造函数内的属性或方法,又能继承原型上的属性或方法
- 不方便给子构造函数传参
- 比较消耗性能(实例在遍历方法时,可能会多遍历一层原型对象)
- 原型对象继承 - 原型对象的拷贝
- 混合继承
- 构造函数继承 + 原型继承
- 既能继承构造函数,又能继承原型
- 方便给构造函数传参
- 多继承
- ES6的class继承
- 语法层面上的继承
- 既能继承构造函数,又能继承原型
- 方便给构造函数传参
- 原理:混合继承
- 构造函数继承+原型链继承