对象的继承实现
2018-11-06 本文已影响0人
dwy_interesting
继承实现:
a. 构造函数继承
call()
apply()
b. 原型链继承
Student.prototype = new Person();
或
Student.prototype = Object.create(Person.prototype);
c. 组合继承
构造函数 + 原型链继承
d. class
语法糖,本质上还是ES5基于原型的继承:构造函数 + prototype
语法:
class 类名 {
constructor() {
// 构造函数,constructor 是构造函数的固定名称
}
methodName1() {
// 成员方法,相当于就是在 prototype 中定义的方法
}
methodName2() {
// 成员方法,相当于就是在 prototype 中定义的方法
}
}
继承:
class 子类名 extends 父类名(超类、基类) {
constructor() {
// 构造函数,constructor 是构造函数的固定名称
super(); // 调用父类的构造函数
}
methodName1() {
// 成员方法,相当于就是在 prototype 中定义的方法
super.methodName(); // 调用父类的成员函数
}
methodName2() {
// 成员方法,相当于就是在 prototype 中定义的方法
}
}
e. 寄生组合方式
f. 拷贝式继承