有人能解释一下';超级()和#x27;ES6 Javascript中的关键字(尤其与React相关)?

有人能解释一下';超级()和#x27;ES6 Javascript中的关键字(尤其与React相关)?,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我正在学习React.js,我看到构造函数中经常使用super关键字 我知道super允许子类访问this关键字。然而,我找不到更多的解释 为什么调用super() 为什么super关键字将this绑定到类的上下文 当我不处理子类时,为什么不调用 super() 实际上,构造函数中的super调用调用父类的构造函数。您可以访问此,而不必使用它,但在react的上下文中,与此相关联的此属性,如此。props和此。state在react.Component类构造函数中正确设置和配置。这就是为什么你

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

我知道
super
允许子类访问
this
关键字。然而,我找不到更多的解释

  • 为什么调用
    super()
  • 为什么
    super
    关键字将
    this
    绑定到类的上下文
  • 当我不处理子类时,为什么不调用
    super()

实际上,构造函数中的
super
调用调用父类的构造函数。您可以访问
,而不必使用它,但在react的上下文中,与
相关联的此属性,如
此。props
此。state
react.Component
类构造函数中正确设置和配置。这就是为什么你必须先调用super,这样才能正确设置
这个

对不起,这张日文图片看起来很容易理解

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

(来自)

更新

供参考:
这个讨论很好地解释了react组件中的
super
如何影响这个上下文约束。很好阅读。

您可以在上查找关键字和大多数其他内容。您不能在方法中使用
super(arg)
,它必须是
super.methods(arg)
。谢谢。我将尝试使用“this”来测试super()如何设置它,但这在概念上更具意义。因此,按照这个逻辑,我们假设super()可以避免使用arrow函数,因为arrow函数将自动对父上下文透明?@Webwoman,我不认为构造函数是箭头函数是有意义的,因为在构造函数上,您肯定希望使用
this
引用。。。也许我不明白你的意思…@Luanico我的意思是ES6 arrow函数不能绑定到this关键字,因此它会在词汇上向上扩展一个范围,并在定义它的范围内使用它的值,在本例中,组件本身。这只是做一些理论假设:)。