Contenu du cours
Maîtrise Avancée de JavaScript
Maîtrise Avancée de JavaScript
Défi : Gestion des Propriétés avec Getters et Setters
Tâche
Vous travaillez au sein d'une classe Car
qui possède une propriété privée #mileage
. Votre tâche est de définir des getters et setters pour cette propriété afin de contrôler comment elle est accédée et modifiée.
Définir un Getter pour le Kilométrage : Définissez un getter pour la propriété
mileage
afin de récupérer le kilométrage actuel ;Définir un Setter pour le Kilométrage avec Validation : Définissez un setter pour la propriété
mileage
qui accepte une nouvelle valeur de kilométrage. Ce setter doit :Permettre la mise à jour uniquement si le nouveau kilométrage est supérieur au kilométrage actuel (le kilométrage ne peut qu'augmenter) ;
Si le nouveau kilométrage est invalide, enregistrer
"Invalid mileage update"
et ne pas changer le kilométrage actuel.
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
Définir un accessoire
get
pourmileage
afin de récupérer le kilométrage actuel ;Définir un accessoire
set
pourmileage
qui prendnewMileage
comme paramètre ;Dans le setter, vérifier si
newMileage
est supérieur au kilométrage actuel (this.#mileage
) ;Si
newMileage
est valide, mettre à jour#mileage
ànewMileage
;Si
newMileage
n'est pas supérieur au kilométrage actuel, enregistrer"Invalid mileage update"
et ne pas changer le kilométrage.
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
Merci pour vos commentaires !