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

bookDé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

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Awesome!

Completion rate improved to 2.22

bookDéfi : Gestion des Propriétés avec Getters et Setters

Glissez pour afficher le menu

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
some-alt