日期:2024 年 12 月 16 日
歡迎來到第九天!今天,我們探討 JavaScript 中的模組 和 類別,這兩個概念可以顯著增強程式碼組織、可重複使用性和可讀性。理解這些主題將提高您的 JavaScript 技能,使您能夠像專業開發人員一樣建立您的專案。
模組可讓您將程式碼分割成更小的、可重複使用的部分。您可以將功能組織到多個文件中,而不是使用一個大文件,從而使您的程式碼庫更易於管理和維護。
您可以使用匯出從模組中匯出變數、函數或類別。
命名導出
// utils.js export const add = (a, b) => a + b; export const subtract = (a, b) => a - b;
預設導出
// greet.js export default function greet(name) { return `Hello, ${name}!`; }
使用 import 關鍵字從另一個模組引入功能。
範例:導入命名導出
// main.js import { add, subtract } from './utils.js'; console.log(add(5, 3)); // Output: 8 console.log(subtract(5, 3)); // Output: 2
範例:匯入預設匯出
// main.js import greet from './greet.js'; console.log(greet("Alice")); // Output: Hello, Alice!
使用 import() 在運行時動態導入載入模組。
範例:延遲載入
const loadModule = async () => { const module = await import('./utils.js'); console.log(module.add(5, 3)); // Output: 8 }; loadModule();
JavaScript 中的類別提供了建立物件並封裝相關資料和方法的藍圖。它們是 ES6 的一部分,是 JavaScript 中物件導向程式設計的基礎。
類別是使用 class 關鍵字定義的。
範例:基礎課程
class Person { constructor(name, age) { this.name = name; this.age = age; } greet() { return `Hello, my name is ${this.name} and I am ${this.age} years old.`; } } const person1 = new Person("John", 30); console.log(person1.greet()); // Output: Hello, my name is John and I am 30 years old.
繼承允許一個類別使用extends關鍵字從另一個類別派生屬性和方法。
範例:繼承
class Animal { constructor(name) { this.name = name; } speak() { console.log(`${this.name} makes a sound.`); } } class Dog extends Animal { speak() { console.log(`${this.name} barks.`); } } const dog = new Dog("Buddy"); dog.speak(); // Output: Buddy barks.
靜態方法屬於類別本身,而非實例。
範例:靜態方法
// utils.js export const add = (a, b) => a + b; export const subtract = (a, b) => a - b;
私有欄位和方法只能在類別內訪問,並用 # 前綴表示。
範例:私人領域
// greet.js export default function greet(name) { return `Hello, ${name}!`; }
雖然物件字面量對於簡單的資料結構來說是快速而直接的,但類別提供:
模組和類別在現代 JavaScript 應用程式中完美地互補。您可以在一個模組中定義一個類別並在另一個模組中使用它。
範例:組合模組和類別
// main.js import { add, subtract } from './utils.js'; console.log(add(5, 3)); // Output: 8 console.log(subtract(5, 3)); // Output: 2
這是一個結合模組和類別的實際範例。
檔:cart.js
// main.js import greet from './greet.js'; console.log(greet("Alice")); // Output: Hello, Alice!
檔案:main.js
const loadModule = async () => { const module = await import('./utils.js'); console.log(module.add(5, 3)); // Output: 8 }; loadModule();
明天,第 10 天,我們將深入研究 事件循環和非同步程式設計,您將了解 JavaScript 如何處理並發、回呼、promise 和事件循環。請繼續關注!
以上是JavaScript 模組和類別的詳細內容。更多資訊請關注PHP中文網其他相關文章!