共计 684 个字符,预计需要花费 2 分钟才能阅读完成。
ES6 继承 详细类容参考:http://es6.ruanyifeng.com/#do…
1、super() 使用
class A {
construcor(a, b) {
this.a = a;
this.b = b;
}
}
class B extends A {
constructor(x, y, z) {
super(x, y);
this.z = z;
console.log(x, ‘—‘, y, ‘—-‘, z, ‘—-‘);
}
}
let b = new B(1, 2, 8);
// 1 “—” 2 “—-” 8 “—-”
注意:ES6 中继承的子类中,如果使用构造函数 constructor() 那么就必须使用 super() 方法初始化,这样下面才可以调用 this 关键字。super() 只能用在子类的构造函数之中,用在其他地方就会报错。
子类必须在 constructor 方法中调用 super 方法,否则新建实例时会报错。这是因为子类自己的 this 对象,必须先通过父类的构造函数完成塑造,得到与父类同样的实例属性和方法,然后再对其进行加工,加上子类自己的实例属性和方法。如果不调用 super 方法,子类就得不到 this 对象。— 阮一峰
2、父类中的静态方法,子类中可以通过类名直接调用
class A2 {
static hello() {
console.log(“hello world”);
}
}
class B2 extends A2 {
constructor() {
super();
}
}
B2.hello();
// hello world
3、Object.getPrototypeOf() 判断子类继承的父类
Object.getPrototypeOf(B2);
// A2