Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Défi : Gestion des Propriétés avec Getters et Setters | Classes
Maîtrise Avancée de JavaScript
course content

Contenu du cours

Maîtrise Avancée de JavaScript

Maîtrise Avancée de JavaScript

2. Manipulation du DOM
3. Événements et Gestion des Événements
4. JavaScript Asynchrone et APIs

book
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.

  1. 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 ;
  2. 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.
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
  • Définir un accessoire get pour mileage afin de récupérer le kilométrage actuel ;
  • Définir un accessoire set pour mileage qui prend newMileage 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.
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

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 10
We're sorry to hear that something went wrong. What happened?
some-alt