编程语言
940
class
ES6引入了新的关键字
class
, 以便类的定义和继承变得更加清晰
解释几个关键词:
- extend: 用于建立继承关系
- super: 子类构造函数中调用父类的构造函数(在上一节有提及)
以一段实例解释class的使用
class Animal { constructor(name) { this.name = name; } eat() { console.log(this.name + "eating."); } } class Dog extends Animal { constructor(name, breed) { super(name); this.breed = breed; } bark() { console.log(this.name + "barking."); } } const dog = new Dog("taidi", "buma"); dog.eat(); dog.bark();
可以使用 getter 和 setter 两个方法来获取和设置值
getter 和 setter 都需要在严格模式
下执行。
类中添加 getter 和 setter 使用的是 get
和 set
关键字。
class SportUtilityCar extends Car { constructor(brand, vinNumber, drivetrain) { super(brand, vinNumber); this.drivetrain = drivetrain; } carInfo() { return { brand: this.brand, vinNumber: this.vinNumber, drivetrain: this.drivetrain } } get drivetrain() { return this._drivetrain; } set drivetrain(newDrivetrain) { this._drivetrain = newDrivetrain; } }
class总体来说还是偏向于语法糖, 实际使用情况还是根据个人情况和习惯而定, 并没有本质的区别.