📜  类关键字 es6 (1)

📅  最后修改于: 2023-12-03 15:11:33.766000             🧑  作者: Mango

ES6 类关键字

ES6 引入了类(class)这个概念,使得 JavaScript 的面向对象编程更加方便和易于理解。在 ES6 之前,JavaScript 使用的是“构造函数”创建对象,而这种方式有很多限制和不足。类的出现使得代码更加简洁易读,更容易组织和维护,而且更符合面向对象编程的思想。

基本语法

类的基本语法使用关键字 class:

class Animal {
  constructor(name) {
    this.name = name
  }
  speak() {
    console.log(`${this.name} makes a noise.`);
  }
}

上面的代码定义了一个名为 Animal 的类。类的构造函数由 constructor 关键字指定,其他方法都定义在类的原型中。在上面的例子中,Animal 类有一个 speak() 方法,用来输出动物的名称和发出的声音。

创建对象

类定义好之后,我们可以使用 new 关键字来创建对象:

const cat = new Animal('cat');
cat.speak(); // output: "cat makes a noise."
继承

ES6 的类内建继承机制,可以使用 extends 关键字来实现继承特性:

class Dog extends Animal {
  constructor(name) {
    super(name);
  }

  speak() {
    console.log(`${this.name} barks.`);
  }
}

const dog = new Dog('dog');
dog.speak(); // output: "dog barks."

上述代码中,我们定义了一个 Dog 类通过 extends 关键字继承了 Animal 类。同时 Dog 类重写了 speak() 方法,输出的是狗的叫声。

静态方法

定义在类上而不是实例上,只能由类名直接调用的方法称为“静态方法”:

class Animal {
  static type() {
    console.log('I am an animal');
  }

  speak() {
    console.log(`${this.name} makes a noise.`);
  }
}

Animal.type(); // output: "I am an animal"

上述代码中,我们定义了一个 Animal 类的静态方法 type()。调用该方法不需要实例化对象,直接使用类名调用即可。

结语

ES6 的类关键字使得 JavaScript 拥有了更加现代化的面向对象编程能力,运用起来也十分简明清晰。使用类可以更好地组织代码和面向对象编程地思考问题,在团队开发或项目维护中也有很大的作用。