艾瑞巴蒂,嗨起来!
本次我们一起回顾一下 ES6的class类的知识点。在 “ ES6学习(1)” 的博客中,我们一起简单的回顾了一下 “ 类 ” 的概念。本篇博客,我们继续往下走,是男人就一直下到100层。
一,基本语法
1,基本结构:
// 基本方法定义类
class Point {
constructor( ) {
// 必需 。 类的默认方法:类的属性
}
toString() {
// 定义类的原型方法。
}
}
var point = new Point(); // 创建一个实例
point.toString() // 执行实例
// 自执行表达式的方法定义一个类
let person = new class {
constructor( ) {
// ...
}
sayName() {
// ...
}
}();
person.sayName(); //
从上边我们看到无论是基本格式的class创建类还是表达式格式的class创建类,基本结构都是一毛一样的。两个部分构成:constructor和原型方法。那么接下来,我们一起看看这俩部分:
constructor:
一个类必须有constructor()
方法,如果没有显式定义,一个空的constructor()
方法会被JavaScript引擎默认添加。constructor()
方法默认返回实例对象(即this
),完全可以指定返回另外一个对象。在constructor中定义在this上的属性都是定义在本身实例上。
实例属性的新写法:
实例属性除了定义在constructor()
方法里面的this
上面,也可以定义在类的最顶层。
好处:所有实例对象自身的属性都定义在类的头部,看上去比较整齐,一目了然。另外,写起来也比较简洁。
代码示例:
// 旧写法 ,属性在constructor中定义在类的this上
class IncreasingCounter {
constructor() {
this._count = 0;
}
get value() {
console.log('Ge