与ES5相比,es6的继承要简单的多了,直接来个例子.
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
getName() {
return this.name;
}
}
// 继承
class Student extends Person {
constructor(name, age, gender, classes) {
super(name, age);
this.gender = gender;
this.classes = classes;
}
getGender() {
return this.gender;
}
}
const s = new Student("TOM", 20, 1, 3);
s.getName(); // TOM
s.getGender(); // 1
我们只需要一个extends关键字与super方法,就能够实现继承了.
在子类的构造函数中必须调用super方法,他表示构造函数的继承,与ES5中利用call/apply继承构造函数的功能一样.
// 构造函数中
// super
super(name,age);
// es5
Person.call(this);