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
本质是「函数」。