ES6:class继承

https://www.cnblogs.com/faith3/p/9219446.html

ES6的继承机制:先创建父类的实例对象this,然后再用子类的构造函数修改this。所以必须先调用super()

有constructor钩子函数时候,Child类会多一个constructor方法,可以定义state.

如果组件要定义自己的state初始状态的话,需要写在constructor钩子函数中,一旦写了constructor,就必须在此函数中写super(),此时组件才有自己的this,在组件的全局中都可以使用this关键字,。

如果用户不使用state的话,纯用props接受参数,有没有constructor钩子函数都可以,可以不用constructor钩子函数。

class child extends components{

            constructor(props){

              super(props)  //super它在这里表示父类的构造函数,用来新建父类的this对象。

            }

          }

classA{}

class B extends A{constructor(){super();}}

super虽然代表了父类A的构造函数,但是返回的是子类B的实例,即super内部的this指的是B的实例,因此super()在这里相当于A.prototype.constructor.call(this)。

你可能感兴趣的:(ES6:class继承)