ES5 继承有以下六种方法:
1). 原型链继承 JavaScript 实现继承的基本思想:
通过原型将一个引用类型继承另一个引用类型的属性和方法
2). 借用构造函数继承(伪造对象或经典继承) JavaScript 实现继承的及基本思想:
在子类构造函数内部调用超类型构造函数。 通过使用 apply() 和 call() 方法可以在新创建的子类对象上执行构造函数。
3). 组合继承(原型 + 借用构造)(伪经典继承) JavaScript 实现继承的基本思想:
将原型链和借用构造函数的技术组合在一块.,从而发挥两者之长的一种继承模式,将原型链和借用构造函数的技术组合到一起,从而取长补短发挥两者长处的一种继承模式。
4). 型式继承 JavaScript 实现继承的基本思想:
想借助原型可以基于已有的对象创建新对象,同时还不必须因此创建自定义的类型。
5). 寄生式继承 JavaScript 实现继承的基本思想:
创建一个仅用于封装继承过程的函数,该函数在内部以某种方式来增强对象,最后再像真正是它做了所有工作一样返回对象。(寄生式继承是原型式继承的加强版)
6). 寄生组合式继承 JavaScript 实现继承的基本思想:
通过借用函数来继承属性,通过原型链的混成形式来继承方法。
Es6 的继承:
1).使用 class 构造一个父类
class Parent {
constructor(name,age){
this.name = name
this.age = age
}
sayName(){
console.log(this.name)
}
}
2). 使用 class 构造一个子类,并使用 extends 实现继承, super 指向父类的原型对象
class Child extends Parent{
constructor(name,age,gender){
super(name,age)
this.gender = gender
}
sayGender(){
console.log(this,gender)
}
}
3). 实例化对象
const ming = new Child('ming',18,'男')
ming.sayGender()
ming.sayName()
console.log(ming.name)
console.log(ming.age)
}