js怎么用class去实现继承?

草原

JavaScript的传统是用「原型」去实现继承,但是ES6让我们可以使用class来实现继承,并且,用class来实现继承是很简单的。

class Parent {
  constructor(value) {
    this.val = value
  }
  getValue() {
    console.log(this.val)
  }
}
class Child extends Parent {
  constructor(value) {
    super(value)
  }
}
let child = new Child(1)
child.getValue() // 1
child instanceof Parent // true

使用class实现继承的核心是使用extends表明继承自哪个父类,并且在子类构造函数中必须调用super,super这段代码可以看成Parent.call(this, value)

不过还是要说明一下,JS中并没有「类」,class本质是「函数」。