es6中推出了class的概念,有点类似于java中的class的面向对象
这是一个常规react开发的页面,其实就是因为想用类似于java的类的思想,也就是es6里面的class类,es6的类,其实就是一个构造函数,写法不同而已。
图中constructor()
方法是类的默认方法,通过new
命令生成对象实例时,自动调用该方法。一个类必须有constructor()
方法,如果没有显式定义,一个空的constructor()
方法会被默认添加。constructor()方法中第一个是super(),在class方法中,继承是使用 extends 关键字来实现的。子类 必须 在 constructor( )调用 super( )方法,否则新建实例时会报错。报错的原因是:子类是没有自己的 this 对象的,它只能继承自父类的 this 对象,然后对其进行加工,而super( )就是将父类中的this对象继承给子类的。没有 super,子类就得不到 this 对象