ES6 中的class
类别,它是效仿其他程式语言拥有物件导向(OOP)的概念,取代需要原型 prototype 的操作,因为写法更简洁与易于理解,用来代替 javascript 传统建构物件的形式。
class foo { // class 的建构子 constructor(x, y) { this.x = x; this.y = y; } // class 的方法 getPoint() { return {x, y}; }}typeof foo // "function"foo === foo.prototype.constructor // truelet f = new foo(10, 20);console.log(f.getPoint()); // {x: 10, y: 20}
使用特性
基本使用
class
本身原型是指向建构函数 function本身 prototype
的属性还是存在的内部有个默认的 constructor
建构子函数class
本身也可以使用表达式的来定义进阶使用
可以使用静态方法,在定义方法的前面加上static
关键字可以通过 extends
关键字进行物件继承继承后要调用父类的方法或属性使用 super
关键字缺陷: 目前没有 "私有(private)/公开(publice)" 方法与属性的关键字,但可以使用新的资料型态 Symbol
唯一性的形式定义细节用法
可以参考 : ES6 class 关键字