在 ES6 中使用 Node JS 创建和导出类

Isaac Tony 2023年10月12日
  1. 使用 Node JS 在 ES6 中创建
  2. 使用 constructor() 方法在 ES6 中使用 Node JS 创建类
  3. 使用 module.export 方法在 ES6 中使用 Node JS 导出模块
在 ES6 中使用 Node JS 创建和导出类

是在 Javascript 中创建对象的蓝图。在新的语言规范 ECMAScript 2015 中,使用关键字 class 和 constructor() 方法创建类。

在这些新开发之前,开发人员依靠构造函数来创建面向对象的设计。对于尝试学习该语言的新开发人员来说,这通常是一个障碍。

除此之外,虽然在这些新开发中没有引入新概念,但像开发人员在其他语言中创建的能力使我们拥有更优雅的语法。

除此之外,新手开发人员可以轻松地将这种新语法与其他语言(例如 java)联系起来。在这种新的 ES6 语法中有两种创建类的方法。

使用 Node JS 在 ES6 中创建

你可以选择创建类声明类表达式。这符合带有函数表达式函数声明的常规 javascript 函数。

使用 constructor() 方法在 ES6 中使用 Node JS 创建类

因此,类通常被称为特殊功能。我们将使用关键字 class 和 constructor 方法来创建类声明,如下所示。

class Employee {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
  getName() {
    return this.name;
  }
}

在上面的示例中,我们创建了一个名为 Employee 的类。我们还使用 constructor() 方法初始化了实例的属性。

实例化类的对象时会自动调用此方法。根据 ES6 语法,我们在一个类中只能有一个构造方法,并且类应该总是在被调用之前被声明。

我们可以创建一个使用类名自动调用 constructor 方法的对象。使用这个对象,我们还可以调用在类中创建的方法。

class Employee {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
  getName() {
    return this.name;
  }
  getAge() {
    return this.age;
  }
}

let obj = new Employee('Isaac Tonyloi', 21);
console.log(obj.getName());
console.log(obj.getAge());

输出:

Isaac Tonyloi
21

或者,我们也可以将类定义为表达式。尽管类定义的大部分结构保持不变,但我们可以选择使用命名未命名的类表达式。

class 表达式的一个优点是我们可以将类作为参数传递给函数,因为类是一等公民。

这是我们如何将上述类声明重写为类表达式的方法。在这种情况下,类表达式是未命名

let Employee = class {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
  getName() {
    return this.name;
  }
  getAge() {
    return this.age;
  }
}

let obj = new Employee('Isaac Tonyloi', 21);
console.log(obj.getName());
console.log(obj.getAge());

输出:

Isaac Tonyloi
21

在上面的示例中,你会注意到创建类表达式和类声明时创建对象是相同的。

类表达式在创建之前不能被调用,就像类声明一样。可以像 Node JS 中的任何其他模块一样导入类。

使用 Python 模块的一种常用方法是使用 module.export 方法导出一个模块,并使用 require() 方法将其导入另一个模块。

使用 module.export 方法在 ES6 中使用 Node JS 导出模块

module.export 方法用于在服务器端导出模块,并以 CommonJS 格式提供。

在下面的示例中,我们使用我们在上一个示例中刚刚创建的类表达式作为我们要导出的模块。

但是,我们将首先创建一个简单的 Node JS 应用程序,其中包含一个包含此类定义的文件和另一个我们想要导出该类的文件。

索引.js

let Employee = class {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
  getName() {
    return this.name;
  }
  getAge() {
    return this.age;
  }
}

module.exports = Employee;

服务器.js

let Employee = require('./index.js');

let obj = new Employee('Isaac Tonyloi', 21);
console.log(obj.getName());
console.log(obj.getAge());

在上面的示例中,我们使用 module.exports 方法发布了在 index.js 中定义的类表达式。在名为 server.js 的文件中,我们使用 require() 方法将 index.js 文件作为模块导入。

现在我们已经在 sever.js 中提供了类定义,我们为 Employee 创建了一个实例并使用它来访问它的方法。

你还可以执行其他操作,例如使用相同的方法在不同的文件中扩展类。

作者: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn