JavaScript 中的物件導向程式設計 (OOP)
在 JavaScript 中,物件 是鍵值對(屬性與方法)的集合。類別作為創建物件的藍圖。
// Define a class class Person { constructor(name, age) { this.name = name; // Property this.age = age; } greet() { // Method console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`); } } // Create an object const person1 = new Person('Alice', 25); person1.greet(); // Output: Hello, my name is Alice and I am 25 years old.
封裝意味著將資料(屬性)和操作資料的方法捆綁在單一單元(物件)內。它限制對物件的某些部分的直接存取。
class BankAccount { #balance; // Private field constructor(initialBalance) { this.#balance = initialBalance; } deposit(amount) { this.#balance += amount; } getBalance() { return this.#balance; } } const account = new BankAccount(1000); account.deposit(500); console.log(account.getBalance()); // 1500 // console.log(account.#balance); // Error: Private field '#balance' not accessible
繼承允許一個類別從另一個類別繼承屬性和方法。它有助於重複使用現有程式碼。
class Animal { constructor(name) { this.name = name; } speak() { console.log(`${this.name} makes a noise.`); } } class Dog extends Animal { speak() { console.log(`${this.name} barks.`); } } const dog = new Dog('Buddy'); dog.speak(); // Output: Buddy barks.
多態意味著具有多種形式。在 OOP 中,它允許子類別中的方法與父類別中的方法具有相同的名稱,但行為不同。
class Shape { area() { return 0; } } class Rectangle extends Shape { constructor(width, height) { super(); this.width = width; this.height = height; } area() { return this.width * this.height; } } const shape = new Shape(); const rectangle = new Rectangle(10, 5); console.log(shape.area()); // 0 console.log(rectangle.area()); // 50
抽象隱藏了程式碼的複雜性,只向使用者展示必要的部分。
class Vehicle { startEngine() { console.log('Engine started'); } } class Car extends Vehicle { drive() { console.log('Driving the car...'); } } const car = new Car(); car.startEngine(); // Engine started car.drive(); // Driving the car...
靜態方法和屬性屬於類別本身,而不屬於實例。
class MathUtils { static add(a, b) { return a + b; } } console.log(MathUtils.add(5, 3)); // 8
JavaScript 使用基於原型的繼承模型,其中物件可以從其他物件繼承屬性和方法。
function Person(name) { this.name = name; } Person.prototype.greet = function() { console.log(`Hello, my name is ${this.name}`); }; const person = new Person('Alice'); person.greet(); // Hello, my name is Alice
JavaScript 的 OOP 功能可讓開發人員編寫乾淨、模組化且可重複使用的程式碼。
嗨,我是 Abhay Singh Kathayat!
我是一名全端開發人員,精通前端和後端技術。我使用各種程式語言和框架來建立高效、可擴展且用戶友好的應用程式。
請隨時透過我的商務電子郵件與我聯繫:kaashshorts28@gmail.com。
以上是JavaScript 中的物件導向程式設計 (OOP):綜合指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!