有人可以解释ES6 Javascript中的'super()'关键字(特别是与React有关)吗?

tha*_*und 13 javascript ecmascript-6 reactjs

我正在学习React.js,我看到super关键字在构造函数中使用了很多.

据我所知,super允许子类访问该this关键字.但是,我找不到更多的解释.

  • 为什么打电话super(),神奇地让我的班级访问this
  • 为什么super关键字绑定this到类的上下文?
  • 当我不处理子类时,为什么我不打电话 super()

Izu*_*iSy 7

对不起日语图片,但看起来很容易理解.

super在类成员函数中使用函数时,extends也应使用关键字.当您super(args)扩展类中调用super时,它会调用扩展类的构造函数.您也可以使用,而不是调用扩展类的其他成员函数.super.methods(args)super(args)

延伸和超级 (来自https://liginc.co.jp/266587)

UPDATE

仅供参考:使用es6课程时,React中的"super()"和"super(props)"有什么区别? 此讨论很好地解释了super反应组件如何影响此上下文约束.很高兴阅读.


Lua*_*ico 5

实际上,super构造函数中的调用会调用父类的构造函数。您可以this独立于是否使用而进行访问,但是在react的上下文中this,与this.props和关联的此属性(例如和)this.state已在React.Component类构造函数中正确设置和配置。这就是为什么您必须首先调用super的原因,这样才能this正确设置。