加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

react中constructor和super的使用

发布时间:2020-12-15 20:25:37 所属栏目:百科 来源:网络整理
导读:一:什么时候要用constructor,需要定义state的时候必须要写,要调用super(),而且要传入props参数即super(props)。如果不定义state的话,有无constructor没区别。 二:什么时候要调用super,如果要在子类中使用父类的属性和方法,就要调用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对象。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读