Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Desafío: Implementar Getters y Setters en una Clase | Dominio de las Clases e Herencia en JavaScript
Maestría Avanzada en JavaScript

bookDesafío: Implementar Getters y Setters en una Clase

Tarea

Se está trabajando dentro de una clase Car que tiene una propiedad privada #mileage. La tarea consiste en definir getters y setters para esta propiedad para controlar cómo se accede y modifica.

  1. Definir Getter para Mileage: Definir un getter para la propiedad mileage para recuperar el kilometraje actual;
  2. Definir Setter para Mileage con Validación: Definir un setter para la propiedad mileage que acepte un nuevo valor de kilometraje. Este setter debe:
    • Permitir la actualización solo si el nuevo kilometraje es mayor que el actual (el kilometraje solo puede aumentar);
    • Si el nuevo kilometraje no es válido, registrar "Invalid mileage update" y no cambiar el kilometraje actual.
123456789101112131415161718192021222324252627
class Car { #mileage = 1000; // Initial private mileage // Getter for mileage _____ mileage() { return this.#_____; } // Setter for mileage with validation _____ mileage(newMileage) { _____ (_____ > this.#_____) { this.#_____ = newMileage; } _____ { console.log(_____); } } } // Testing const car1 = new Car(); console.log(car1.mileage); // Expected: 1000 car1.mileage = 1500; // Update mileage to 1500 console.log(car1.mileage); // Expected: 1500 car1.mileage = 900; // Attempt invalid mileage update, expected: Invalid mileage update
copy
  • Definir un accesor get para mileage para recuperar el kilometraje actual;
  • Definir un accesor set para mileage que reciba newMileage como parámetro;
  • En el setter, comprobar si newMileage es mayor que el kilometraje actual (this.#mileage);
  • Si newMileage es válido, actualizar #mileage a newMileage;
  • Si newMileage no es mayor que el kilometraje actual, registrar "Invalid mileage update" y no cambiar el kilometraje.
123456789101112131415161718192021222324252627
class Car { #mileage = 1000; // Initial private mileage // Getter for mileage get mileage() { return this.#mileage; } // Setter for mileage with validation set mileage(newMileage) { if (newMileage > this.#mileage) { this.#mileage = newMileage; } else { console.log('Invalid mileage update'); } } } // Testing const car1 = new Car(); console.log(car1.mileage); // Output: 1000 car1.mileage = 1500; // Update mileage to 1500 console.log(car1.mileage); // Output: 1500 car1.mileage = 900; // Attempt invalid mileage update, expected: Invalid mileage update
copy

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 10

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

Can you explain how getters and setters work in JavaScript?

What happens if I try to set the mileage to the same value as the current mileage?

Can you show how to add more validation to the setter, like checking for negative values?

Awesome!

Completion rate improved to 2.22

bookDesafío: Implementar Getters y Setters en una Clase

Desliza para mostrar el menú

Tarea

Se está trabajando dentro de una clase Car que tiene una propiedad privada #mileage. La tarea consiste en definir getters y setters para esta propiedad para controlar cómo se accede y modifica.

  1. Definir Getter para Mileage: Definir un getter para la propiedad mileage para recuperar el kilometraje actual;
  2. Definir Setter para Mileage con Validación: Definir un setter para la propiedad mileage que acepte un nuevo valor de kilometraje. Este setter debe:
    • Permitir la actualización solo si el nuevo kilometraje es mayor que el actual (el kilometraje solo puede aumentar);
    • Si el nuevo kilometraje no es válido, registrar "Invalid mileage update" y no cambiar el kilometraje actual.
123456789101112131415161718192021222324252627
class Car { #mileage = 1000; // Initial private mileage // Getter for mileage _____ mileage() { return this.#_____; } // Setter for mileage with validation _____ mileage(newMileage) { _____ (_____ > this.#_____) { this.#_____ = newMileage; } _____ { console.log(_____); } } } // Testing const car1 = new Car(); console.log(car1.mileage); // Expected: 1000 car1.mileage = 1500; // Update mileage to 1500 console.log(car1.mileage); // Expected: 1500 car1.mileage = 900; // Attempt invalid mileage update, expected: Invalid mileage update
copy
  • Definir un accesor get para mileage para recuperar el kilometraje actual;
  • Definir un accesor set para mileage que reciba newMileage como parámetro;
  • En el setter, comprobar si newMileage es mayor que el kilometraje actual (this.#mileage);
  • Si newMileage es válido, actualizar #mileage a newMileage;
  • Si newMileage no es mayor que el kilometraje actual, registrar "Invalid mileage update" y no cambiar el kilometraje.
123456789101112131415161718192021222324252627
class Car { #mileage = 1000; // Initial private mileage // Getter for mileage get mileage() { return this.#mileage; } // Setter for mileage with validation set mileage(newMileage) { if (newMileage > this.#mileage) { this.#mileage = newMileage; } else { console.log('Invalid mileage update'); } } } // Testing const car1 = new Car(); console.log(car1.mileage); // Output: 1000 car1.mileage = 1500; // Update mileage to 1500 console.log(car1.mileage); // Output: 1500 car1.mileage = 900; // Attempt invalid mileage update, expected: Invalid mileage update
copy

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 10
some-alt