【问题标题】:What is the need for a constructor() in es6 JavaScript?es6 JavaScript 中的 constructor() 需要什么?
【发布时间】:2018-07-02 00:13:33
【问题描述】:

在 es6 Javascript 创建组件类时,constructor() 起什么作用?我对此有点陌生,并在尝试学习 React 时跳上了这一点。

【问题讨论】:

标签: javascript reactjs ecmascript-6


【解决方案1】:

在创建对象时调用构造函数。
你应该试试这段代码。它将参数输出到控制台。

class MyObject {
    constructor(arg1, arg2) {
        console.log(arg1, arg2);
        // output arguments
    }
}

var myobj = new MyObject("test1", "test2");

【讨论】:

    【解决方案2】:

    在 ReactJs 上下文中:构造函数是第一个为反应组件调用的生命周期方法。可用于初始化状态。

    class SomeComp extends Component {
      constructor(props) {
        super(props);
        this.state = {
          prop1: "value"
        }
      }
    }
    

    但是,现在使用更新版本的 javascript,您可以直接初始化状态。所以实际上组件中不需要使用构造函数。

    class SomeComp extends Component {
      state = {
        prop1: "value1"
      };
    }
    

    【讨论】:

      【解决方案3】:

      上面的回答部分正确:

      Constructor called when your object is created.
      

      但在 React 堆栈中,因为 React 类是子类,我们还有其他的洞穴热:

      1. 如果你有构造函数,总是调用 super(),如果你没有构造函数,不要担心

      2. 仅当您想在构造函数中访问 this.props 时才调用 super(props)。如果您想在其他任何地方访问它,React 会自动为您设置它。

      3. 如果你想在其他地方使用它,则无需将道具传递给构造函数。因为 React 会自动为你设置好它

      【讨论】:

        猜你喜欢
        • 2021-09-17
        • 1970-01-01
        • 2016-12-21
        • 1970-01-01
        • 2018-06-02
        • 2016-01-14
        • 1970-01-01
        • 2011-08-18
        • 1970-01-01
        相关资源
        最近更新 更多