在 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