【问题标题】:Javascript class: What's the difference between public fields and fieldsJavascript类:公共字段和字段有什么区别
【发布时间】:2020-01-09 14:07:07
【问题描述】:

在一个 JS 类中有什么区别:

class MyClass extends components {
    constructor(props) {
        super(props);
        this.state = {toto:"toto"}
    }
}

class MyClass extends components {
    state = {toto:"toto"}
}

[编辑] 相同:感谢您的回答!

【问题讨论】:

  • 没有区别。
  • 第二种方式是新的,还没有完成 (Class field declarations proposal)。一个小的区别是,在第二种方式中,您不能在声明中使用构造函数中的参数。
  • "如果有人知道 Webstorm 为什么在渲染方法之后订购我的状态" - 这是一个单独的问题,应该单独发布,但看起来您已将 IDE 配置为排序类成员按字母顺序排列(构造函数在顶部)?
  • @Bergi 我配置好,他放了构造函数,然后是我的字段,然后是属性和方法。只有状态字段是最后的.. 它不会发生在其他项目中

标签: javascript reactjs class constructor field


【解决方案1】:

在没有构造函数的情况下像这样声明状态:

state = {}

被称为类字段,TC39 提案目前处于我上次检查的第 3 阶段,但它已在 React 社区中广泛采用。

基本上它目前不是 javascript 的一部分,但是 babel 等编译器允许这种语法并将其编译成有效的 javascript 代码。

【讨论】:

    【解决方案2】:

    没有区别,只是语法糖

    【讨论】:

      猜你喜欢
      • 2019-07-17
      • 1970-01-01
      • 2018-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多