zoukankan      html  css  js  c++  java
  • react中constructor和super的使用

    一:什么时候要用constructor,需要定义state的时候必须要写,要调用super(),而且要传入props参数即super(props)。如果不定义state的话,有无constructor没区别。

    二:什么时候要调用super,如果要在子类中使用父类的属性和方法,就要调用super(父类接受的参数),即要在constructor中使用this.props的时候就必须要调用super(props)。

    例如:

    constructor(){
        super();      //没有用到this.props所以参数props就可以不加
        this.state={  //定义了state必须要写constructor,必须调用super
            list:['aaa', 'bbb', 'ccc']
        }
    }

    三:可以不写constructor,但是只要写了constructor就必须要有super。为什么?这是因为子类自己的this对象,必须先通过父类的构造函数完成塑造,得到与父类同样的实例属性和方法,然后对其进行加工,加上子类自己的实例属性和方法。如果不调用super方法,子类就得不到this对象。

    四:为什么可以省略,由于ES6的继承规则,不管子类写不写constructor,在new实例的过程都会自动给补上constructor。

    注意:子类必须在constructor方法中调用super方法,否自新建实例时会报错。这是因为子类自己的this对象,必须先通过父类的构造函数完成塑造,得到父类同样的实例属性和方法,然后再对其进行加工,加上子类自己的属性和方法。如果不调用super方法,子类就得不到this对象。

  • 相关阅读:
    SmartPlant Review 渲染模块低性能设置
    由浅入深:Python 中如何实现自动导入缺失的库?(转)
    itchat初步解读登录(转)
    转:【开源必备】常用git命令
    2.转发。基于itchat的微信消息同步机器人
    1、初学探讨PYTHON的itchat和wxpy两库
    学习git 新手。这个写的不错
    常见的内置错误及处理
    面试题记录1
    防抖
  • 原文地址:https://www.cnblogs.com/luowenshuai/p/9457839.html
Copyright © 2011-2022 走看看