关于类的概念我想大家都很熟悉了,在面向对象编程的时候需要用到类,那么ES5以及之前的写法来模拟类。
那么在我们ES6中,就不会这么粗糙了:
constructor的中文意思就是构造,他在这里代表的就是构造函数,那么class是一个类也是一个函数,只不过ES6标准是把这个函数包装成了一个class的写法而已,在new一个实例的时候,构造函数自动执行。
在写类的过程中,有一点需要注意:class没有预解析,实例化一定要放在下面;在ES5里面用函数来模拟类就可以,因为函数是有提升的功能的
关于ES6中类的新玩法我们已经掌握,那么类的继承的玩法是不是也变了呢?
让我们对比一下,先来看看以前的写法:
再来看看现在的写法:
extends就代表这继承的意思,super就是指向父类的构造函数,指代了整个prototype对象或者_proto_指针指向的对象,在ES6里面呢也是相同的意思,可以省去不少代码和原型链的过程。
如果在子类中也写入showName方法,和父类中的方法重名,这样就会覆盖父类的,倘若不想覆盖而是想引用父类的showName方法,那么就在子类的showName方法中通过super来调用父类的showName:super.showName
领取专属 10元无门槛券
私享最新 技术干货