Javascript 在React.组件的扩展中使用super的目的是什么?

Javascript 在React.组件的扩展中使用super的目的是什么?,javascript,reactjs,super,Javascript,Reactjs,Super,在下面的示例中,为什么需要超级用户?它需要从React.组件中获取哪些道具?如果您已经从React.Component扩展了CommentList,那么为什么超级必要呢?传递到构造函数中的道具不会像传递到React.Component一样被操作吗 class CommentList extends React.Component { constructor(props) { super(props); this.state = { comments: [] } } ...

在下面的示例中,为什么需要超级用户?它需要从React.组件中获取哪些道具?如果您已经从React.Component扩展了CommentList,那么为什么超级必要呢?传递到构造函数中的道具不会像传递到React.Component一样被操作吗

class CommentList extends React.Component {
  constructor(props) {
    super(props);
    this.state = { comments: [] }
  } ...
}

这是一个关于继承的面向对象编程(OOP)概念

类可以从父类继承方法和属性(在您的示例中,CommentList从React.Component继承[因此关键字extends])

但是,当您使用与新类相同的名称命名方法时,父类的方法将被覆盖

这个想法也适用于构造函数(在实例化时运行的方法)

根据OOP的性质,当您在CommentList上声明构造函数时,您重写了React.Component的构造函数方法

因此,您需要调用super(),以确保父构造函数也使用props。(因此是超级道具)

class CommentList extends React.Component {
  constructor(props) {
    console.log(this) // Error
  } 
}