Class关键字
在ES5中,不同于Java等面向对象语言,由于没有真正的类的概念存在,常采用基于原型的面向对象(Prototype based OO)来实现面向对象的逻辑。Babel官网将ES6中的class关键字称为语法糖(Syntactic Sugar)。ES6中的class支持基于原型的继承,super方法调用,创建实例,静态方法,以及构造方法。
ES6代码
1 | class SkinnedMesh extends THREE.Mesh { |
上述代码定义了一个继承自THREE.Mesh的SkinnedMesh类,构造方法中有两个参数,此外共有三个属性,一个名为update的成员方法和一个名为defaultMatrix的静态方法。
使用Babel编译后的ES5代码
1 | ; |
继承和原型链
ES6的class关键字是定义类的语法糖,底层关于class关键字的实现也是用过基于原型实现的。关于继承和原型链,不属于本文的讨论的内容,这里只介绍class关键字最基本的用法。
想要了解继承和原型链,参考2是一篇详细而基础的文档,此外笔者后续也会写一篇关于原型链的总结。
知识点总结
- 使用class关键字定义类,继承父类,构造器,super方法,静态方法,以及创建实例;
- 知道ES6中的class仍然只是JS原型链的语法糖。