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中文网其他相关文章!