如何在JavaScript中实现类似的功能?
时间: 2024-09-28 17:04:01 浏览: 41
在JavaScript中,我们可以创建一个名为`QuadraticEquation`的类来模拟上述功能。下面是基本的实现:
```javascript
class QuadraticEquation {
constructor(a, b, c) {
this.a = a;
this.b = b;
this.c = c;
}
calculateRoots() { // 成员函数,计算并返回根
let determinant = this.b * this.b - 4 * this.a * this.c; // 判别式
if (determinant >= 0) {
let root1 = (-this.b + Math.sqrt(determinant)) / (2 * this.a);
let root2 = (-this.b - Math.sqrt(determinant)) / (2 * this.a);
return [root1, root2];
} else if (determinant === 0) {
let root = -this.b / (2 * this.a);
return [root, root]; // 返回一个重复的根
} else {
let realPart = -this.b / (2 * this.a);
let imaginaryPart = Math.sqrt(-determinant) / (2 * this.a);
return [realPart, complex(root1, imaginaryPart)];
}
}
// 辅助函数,表示复数
complex(real, imag) {
return `${real} + ${imag}i`;
}
}
// 使用示例
let equation = new QuadraticEquation(1, -3, 2);
let roots = equation.calculateRoots();
console.log(`方程的根为:${roots[0]} 和 ${roots[1]}`);
```
这里我们同样计算了判别式并依据其值返回实根或复根。注意JavaScript中的`Math.sqrt`用于计算平方根。
阅读全文