面向对象的 JavaScript 编程136


简介

面向对象编程 (OOP) 是一种编程范例,将数据和行为组织成称为对象的自包含单元。在 JavaScript 中,OOP 是一种强大而灵活的工具,它使开发人员能够创建可重用、可维护和可扩展的代码。

类和对象

在 JavaScript 中,类是对象的模板。它们定义了对象的属性和方法。对象是类的实例,具有类的属性和方法。```javascript
// 定义一个类
class Person {
constructor(name, age) {
= name;
= age;
}
// 方法
greet() {
(`Hello, my name is ${} and I am ${} years old.`);
}
}
// 创建一个对象
const person1 = new Person('John', 30);
// 调用方法
();
```

继承

继承允许类从另一个类继承属性和方法。这使开发人员可以创建层次化的对象结构,其中子类继承其父级的属性和方法。```javascript
// 定义父类
class Animal {
constructor(name) {
= name;
}
eat() {
(`${} is eating.`);
}
}
// 定义子类
class Dog extends Animal {
constructor(name, breed) {
super(name);
= breed;
}
bark() {
(`${} is barking.`);
}
}
// 创建一个子类对象
const dog1 = new Dog('Buddy', 'Golden Retriever');
// 调用子类方法
();
();
```

多态

多态允许子类对象以与父类对象相同的方式进行交互。这意味着可以将子类对象作为父类对象传递到函数和方法中,而无需进行显式类型转换。```javascript
// 定义一个父类方法
class Shape {
area() {
throw new Error('This method must be implemented by subclasses.');
}
}
// 定义子类
class Circle extends Shape {
constructor(radius) {
super();
= radius;
}
area() {
return * 2;
}
}
// 定义一个函数来计算形状面积
function calculateArea(shape) {
return ();
}
// 创建子类对象并将其传递给函数
const circle1 = new Circle(5);
const area = calculateArea(circle1);
```

封装

封装隐藏对象的内部实现,只允许通过公开的方法访问。这有助于将对象的状态与外部代码隔离,并提高代码的可维护性和安全性。```javascript
// 定义一个私有属性
class Account {
#balance = 0;
// 公开方法来存钱
deposit(amount) {
this.#balance += amount;
}
// 公开方法来取钱
withdraw(amount) {
if (amount

2024-12-24


上一篇:JavaScript 运算符简介

下一篇:JavaScript 程序设计:全面指南