面向对象编程:类与对象(JavaScript)262


在 JavaScript 中,面向对象编程(OOP)是一种组织代码和设计复杂应用程序的强大方式。OOP 的核心概念是类和对象,它们允许您创建可重用的数据和行为模型。

类是对象蓝图,它定义了对象的属性(数据)和方法(行为)。
class Person {
// 属性
name;
age;
// 方法
greet() { ("Hello, my name is " + ); }
}


name 和 age 是类的两个属性,它们将存储特定对象的数据。
greet() 是一个方法,它定义了对象可以执行的行为。
this 关键字引用创建的对象。

对象

对象是类的实例,它们具有从类继承的属性和方法。
const person1 = new Person();
= "John";
= 30;
(); // "Hello, my name is John"


new Person() 创建了一个 Person 类的实例。
person1 是新创建的对象,它有 name 和 age 属性,以及 greet() 方法。
我们给 person1 对象的属性赋值。
我们调用 greet() 方法,它将输出 "Hello, my name is John"。

类方法

类方法是不属于任何特定对象的静态方法。它们可以用来访问和操作类本身。
class Person {
static create(name, age) {
const person = new Person();
= name;
= age;
return person;
}
}


create() 是一个静态类方法,它接收 name 和 age 作为参数。
它创建了一个新对象,设置属性,然后返回对象。

继承

继承允许一个类从另一个类派生属性和方法。子类可以创建特定的行为,同时仍然保留父类的功能。
class Employee extends Person {
// 额外的属性和方法
}


Employee 类继承自 Person 类。
它可以访问 Person 类的所有属性和方法。
Employee 类可以添加它自己的特定属性和方法。

多态

多态允许不同类型的对象对相同的方法做出不同的响应。这使得编写可扩展和可重用的代码成为可能。
class Animal {
makeNoise() {
("Animal makes a noise");
}
}
class Dog extends Animal {
makeNoise() { ("Woof!"); }
}
class Cat extends Animal {
makeNoise() { ("Meow!"); }
}


Animal 类是 Dog 和 Cat 类的父类。
所有动物都有一个 makeNoise() 方法。
Dog 和 Cat 类重写了 makeNoise() 方法,根据类型的不同提供不同的行为。

封装

封装允许您隐藏对象的内部实现,只公开必要的信息。这有助于提高代码的可重用性和安全性。
class Person {
#name; // 私有属性
getName() { return this.#name; } // 获取器方法
setName(name) { this.#name = name; } // 设置器方法
}


#name 是 Person 类中的一个私有属性。
getName() 和 setName() 是获取器和设置器方法,它们允许外部代码访问和修改私有属性。


类和对象是 JavaScript OOP 的基础。通过理解这些概念,您可以创建可重用、可扩展且易于维护的代码。OOP 对于构建复杂应用程序至关重要,它允许您管理复杂性并提高代码质量。

2025-01-02


上一篇:JavaScript 数组:如何从数组中返回数组

下一篇:JavaScript 类与对象