117 lines
2.9 KiB
Markdown
117 lines
2.9 KiB
Markdown
# `Oper` 类技术文档
|
||
|
||
## 概述
|
||
|
||
`Oper` 是一个用于封装数值并支持自定义加法操作的 JavaScript 类。通过该类,可以创建包含数值的对象,并使用内置的方法执行对象间的加法运算。
|
||
|
||
> **注意**:该类中定义了两个功能几乎相同的加法方法 `__plus__` 和 `__add__`,可能是为了兼容不同命名习惯或未来扩展预留。
|
||
|
||
---
|
||
|
||
## 构造函数
|
||
|
||
### `constructor(v)`
|
||
|
||
初始化一个 `Oper` 实例,将传入的值保存在 `value` 属性中。
|
||
|
||
#### 参数
|
||
| 参数 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| `v` | `number` | 初始化的数值 |
|
||
|
||
#### 示例
|
||
```javascript
|
||
const a = new Oper(5);
|
||
console.log(a.value); // 输出: 5
|
||
```
|
||
|
||
---
|
||
|
||
## 方法
|
||
|
||
### `__plus__(a, b)`
|
||
|
||
执行两个 `Oper` 对象的加法操作,返回一个新的 `Oper` 实例,其值为两个操作数 `value` 属性之和。该方法会输出两个操作数到控制台。
|
||
|
||
#### 参数
|
||
| 参数 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| `a` | `Oper` | 第一个操作数 |
|
||
| `b` | `Oper` | 第二个操作数 |
|
||
|
||
#### 返回值
|
||
- 类型:`Oper`
|
||
- 说明:一个新的 `Oper` 实例,其 `value` 为 `a.value + b.value`
|
||
|
||
#### 示例
|
||
```javascript
|
||
const x = new Oper(3);
|
||
const y = new Oper(7);
|
||
const result = new Oper().__plus__(x, y);
|
||
// 控制台输出: Oper { value: 3 }, Oper { value: 7 }
|
||
console.log(result.value); // 输出: 10
|
||
```
|
||
|
||
---
|
||
|
||
### `__add__(a, b)`
|
||
|
||
与 `__plus__` 功能完全相同,执行两个 `Oper` 对象的加法操作并返回新实例,同时打印操作数到控制台。
|
||
|
||
#### 参数
|
||
| 参数 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| `a` | `Oper` | 第一个操作数 |
|
||
| `b` | `Oper` | 第二个操作数 |
|
||
|
||
#### 返回值
|
||
- 类型:`Oper`
|
||
- 说明:一个新的 `Oper` 实例,其 `value` 为 `a.value + b.value`
|
||
|
||
#### 示例
|
||
```javascript
|
||
const m = new Oper(4);
|
||
const n = new Oper(6);
|
||
const sum = new Oper().__add__(m, n);
|
||
// 控制台输出: Oper { value: 4 }, Oper { value: 6 }
|
||
console.log(sum.value); // 输出: 10
|
||
```
|
||
|
||
---
|
||
|
||
## 注意事项
|
||
|
||
1. 所有方法均为实例方法,调用时需要先创建 `Oper` 实例。
|
||
2. `__plus__` 和 `__add__` 行为一致,可能存在冗余,建议根据实际需求保留其一或用于不同语义场景。
|
||
3. 当前实现未做类型检查,若传入非 `Oper` 实例或 `value` 非数字,可能导致运行时错误。
|
||
4. 方法设计为静态操作风格(接受两个操作数),而非基于当前实例的 `this.value` 进行计算,这可能与常规面向对象设计不符,使用时需注意。
|
||
|
||
---
|
||
|
||
## 建议改进
|
||
|
||
```js
|
||
// 改进建议:基于实例的加法
|
||
class Oper {
|
||
constructor(v) {
|
||
this.value = v;
|
||
}
|
||
|
||
add(other) {
|
||
return new Oper(this.value + other.value);
|
||
}
|
||
}
|
||
|
||
// 使用方式更自然
|
||
const a = new Oper(5);
|
||
const b = new Oper(3);
|
||
const c = a.add(b);
|
||
console.log(c.value); // 8
|
||
```
|
||
|
||
---
|
||
|
||
## 版本信息
|
||
|
||
- 语言:JavaScript (ES6+)
|
||
- 兼容性:现代浏览器及 Node.js 环境 |