- 基本概念:
constructor(构造方法)
constructor 是对es6类的默认方法,通过 new 命令生成对象实例时自动调用该方法。同时该方法是类中必须有的,如果没有显示定义,则会默认添加空的constructor( )方法。
super() (继承)
class中的继承是通过extends实现继承的,而子类是没有自己的 this 对象的,它只能继承自父类的 this 对象,然后对其进行加工,而super( )就是将父类中的this对象继承给子类的。没有 super,子类就得不到 this 对象。
super()、super(props)、不写super()区别
super()、super(props)使用的前提是constructor已经显示声明。
(1)如果只声明super()方法未传入props属性,就不能直接在constructor中使用this.props;因为改子类实例没有继承到this。
(2)当constructor构造函数未显示声明,super(props)就可以不添加,子类会默认引用调用constructor构造函数和super实现对实例的继承。
网友评论