Necesito su ayuda, mis amigos.
Hay una tarea:
Implemente la clase Calc con métodos sub / add / result .
En el constructor, podemos pasar el valor inmutable inicial (por defecto 0), luego sumar y restar usando los métodos add y sub. La llamada add / sub se puede encadenar (interfaz fluida), los métodos devuelven un nuevo objeto de clase. Al llamar a result () , obtenemos el resultado de los cálculos.
Por ejemplo:
const calc = new Calc(); calc.result(); // 0 calc.add(5).result(); // 0 + 5 = 5 calc.add(3).sub(10).result(); // 0 + 3 - 10 = -7 const ten = calc.add(10); ten.sub(5).result(); // 10 - 5 = 5 ten.result(); // 10esta es una clase
class Calc { }Mi intento:
class Calc { constructor (num = 0) { this.num = num; } add (a) { this.num += a return this } sub (a) { this.num -= a return this } result () { return this.num } }La prueba lo demuestra:
FAIL test.js calc ✓ must return an instance of the Calc class in sub methods (5ms) ✓ must implement fluent interface (1ms) ✓ must correctly implement mathematical operations (5ms) ✕ must ensure the immutability of class instances (2ms) ✕ must ensure the immutability of class 2 instances (2ms)Ayúdenme a completar la tarea correctamente, por favor
Supongo que debe devolver una nueva instancia de Calculadora cada vez que realiza una operación:
class Calc { constructor(num = 0) { this.num = num; } add(a) { return new Calc(this.num+a); } sub(a) { return new Calc(this.num-a); } result() { return this.num; } }