猿问

ES6的class继承中,如果不想调用super(),则唯一的方法是让类的构造函数返回一个对象

在看 Nicholas C. Zakas 写的《深入理解ES6》第198页,关于类的继承中,有下面一段话:


如果不想调用 super() ,则唯一的方法是让类的构造函数返回一个对象。

这里说的返回一个对象是什么意思?是父类的构造函数返回一个对象还是子类的构造函数返回一个对象?


我父类和子类都试过返回一个对象,但是在子类中不调用 super() 依然会报错 Must call super constructor in derived class before accessing 'this' or returning from derived constructor 的错误。


class A {

  constructor () {

     return {}

  }

  sayName () {

    console.log(this.name)

  }

}


class B extends A {

  constructor () {

    this.name = 'test'

  }

}


长风秋雁
浏览 569回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答