在React构造函数中调用super()有什么作用?

JavaScript React.js

伽罗西门小胖

2020-03-18

文档中学习React 并遇到以下示例:

class Square extends React.Component {
  constructor() {
    super();
    this.state = {
      value: null,
    };
  }
  ...
}

根据Mozilla的说法,super允许您this在构造函数中使用是否有其他原因可以单独使用super(我知道super您也可以访问父类的方法),但是使用React时,是否还有其他单独使用的用例super()

第2096篇《在React构造函数中调用super()有什么作用?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

3个回答
SamStafan十三 2020.03.18

要使用this关键字,我们应该在super关键字之前使用它。为什么?super用于调用父类的constructor

现在为什么我们需要打电话给父母的constructor答案是初始化我们通过this关键字引用的属性值

L神乐 2020.03.18

在实现的构造函数时React.Component subclass,应先调用super(props)其他语句。否则,this.propsundefined在构造函数中,这可能导致错误。

Eva神乐 2020.03.18

值得补充的super()是超类构造器的缩写,继承的概念

默认情况下,该类Square从其超继承构造函数React.Component

可以通过声明新constructor()方法来覆盖继承的构造函数

如果要扩展而不是覆盖超类构造函数,则必须使用显式调用它super()

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android