关于javascript的继承,我这里大致分为es5的继承方法和es6的继承方法
一、ES5的继承方法
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)