继承 extends:
- 就是同类之间的继承,有利于代码优化,减少代码量
- 继承是和构造函数相关的一个应用(
同类两个构造函数之间的继承
) - 是指,让一个构造函数去继承另一个构造函数的属性和方法
原型继承
- 利用原型链的规则,去继承一些属性和方法(利用了把子类的原型对象赋值为父类实例化对象)
- 不会影响到父类的原型对象,也不会影响其他父类的实例化对象的使用
- 构造函数体内的属性和方法还有原型上的属性和方法都可以继承
- 需要在两个地方进行传递参数
- 属性
- prototype 原型对象
- –proto-- 隐式原型
- constructor 构造器

借用构造函数继承
- 借用构造函数继承,利用了改变构造函数的this指向
- 优点:
- 继承来的属性是在自己身上,我们一个实例化过程在一个位置传递参数
- 缺点
- 只能继承父类结构函数体内的内容
- 父类方法不能继承

组合继承
- 就是把
原型继承
和 借用构造函数继承
两个方式组合在一起 - 优点
- 父类构造函数体内和原型上的内容都能继承(方法和属性都能继承)
- 继承下来的属性放在自己身上
- 在一个位置传递所有的参数
- 缺点
- 当你给子类添加方法的时候,实际上是添加在父类的实例身上
ES6 class继承
- 其实就是对组合继承进行封装,变成了一个标准语法让咱们使用
<script>
class Father{
constructor(name, age){
this.name = name
this.age = age
}
money(){
console.log('一个小目标!')
}
}
class Son extends Father{
constructor(name, age, sex){
super(name, age)
this.sex = sex
}
}
let s1 = new Son('张三', 18, '男')
console.log(s1)
s1.money()
</script>