Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

217
Views
método estático para calcular múltiples valores

tengo este codigo:

 class Square { constructor(side) { this.side = side; } } class Rectangle { constructor(width, height) { this.width = width; this.height = height; } } class calcMe { } const square = new Square(4); const rectangle = new Rectangle(4, 2); const circle = new Circle(5); console.log(calcMe.calculate(square)); console.log(calcMe.calculate(rectangle));

Y quiero hacer un método estático que pueda calcular el área de estas formas. ¿Cómo puedo decirle esto al método estático? Mi intento es:

 class AreaCalculator { static calculate(val) { for (let key in val) { if (key === 'side') { return console.log(`L'area del quadrato è ${val.side * val.side}`) } else { if (key === 'width') { return console.log(`L'area del rettangolo è ${val.width * val.height}`) } else { if (key === 'radius') { return console.log(`L'area del cerchio è ${val.radius * val.radius * Math.PI}`) } } } } } }

Pero obviamente está mal, incluso si puedo consolar el registro de los resultados correctos. ¿Alguien puede indicarme la dirección correcta? ¿Cómo puedo tener acceso a todos los valores de las formas para devolver el cálculo correcto?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Sería mejor encapsular la lógica de cálculo del área dentro del propio objeto de forma, ya que es la propia forma la que debe saber cómo calcular su propia área. Entonces tendría algo como circle.area(), square.area() etc.

p.ej

 class Square { constructor(side) { this.side = side; } area() { return this.side * this.side; } } const square = new Square(4); const squareArea = square.area();
about 4 years ago · Juan Pablo Isaza Report

0

Definitivamente es más fácil usar métodos de instancia para hacer el cálculo para cada tipo de objeto.

No estoy seguro de lo que quieres o de la segunda parte. Una cosa acerca de los métodos definidos en el cuerpo de la clase es que se asignarán al prototipo de la clase. Así que aquí hay una posible solución.

 class Square { constructor(side) { this.side = side; } area(){ return this.side * this.side; } } class Rectangle { constructor(width, height) { this.width = width; this.height = height; } area(){ return this.width * this.height; } } class Circle { constructor(radius) { this.radius = radius; } area(){ return Math.PI * this.radius * this.radius; } } class calcMe { calculate(obj) { return obj.area() } } const square = new Square(4); const rectangle = new Rectangle(4, 2); const circle = new Circle(5); console.log(calcMe.prototype.calculate(square)); console.log(calcMe.prototype.calculate(rectangle)); console.log(calcMe.prototype.calculate(circle));

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!