在ES6中,在子类的
constructor
中必须先调用
super
才能引用
this
- super(props)的目的:在constructor中可以使用this.props
对比es5和es6可以发现在es5实现继承,在es5中实现继承:
- 首先得先调用函数的call方法把父类的属性给继承过来
- 通过new关键字继承父类原型的对象上的方法和属性
- 最后再通过手动指定constructor属性指向子类对象
而在es6中实现继承,直接调用super(name),就可以直接继承父类的属性和方法,所以super作用就相当于上述的实现继承的步骤,不过es6提供了super语法糖,简单化了继承的实现