Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Défi : Implémenter des Accesseurs et Mutateurs dans une Classe | Maîtrise des Classes et de l'Héritage en JavaScript
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Logique et Interaction en JavaScript

bookDéfi : Implémenter des Accesseurs et Mutateurs dans une Classe

Tâche

Vous travaillez avec une classe Car qui possède une propriété privée #mileage. Votre tâche consiste à définir des accesseurs (getters et setters) pour cette propriété afin de contrôler son accès et sa modification.

  1. Définir un getter pour le kilométrage : Définir 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éfinir un setter pour la propriété mileage qui accepte une nouvelle valeur de kilométrage. Ce setter doit :
    • Autoriser la mise à jour uniquement si le nouveau kilométrage est supérieur à l’actuel (le kilométrage ne peut qu’augmenter) ;
    • Si le nouveau kilométrage n’est pas valide, afficher "Invalid mileage update" et ne pas modifier 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 accesseur get pour mileage afin de récupérer le kilométrage actuel ;
  • Définir un accesseur 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 avec newMileage ;
  • Si newMileage n’est pas supérieur au kilométrage actuel, afficher "Invalid mileage update" et ne pas modifier 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

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?

bookDéfi : Implémenter des Accesseurs et Mutateurs dans une Classe

Glissez pour afficher le menu

Tâche

Vous travaillez avec une classe Car qui possède une propriété privée #mileage. Votre tâche consiste à définir des accesseurs (getters et setters) pour cette propriété afin de contrôler son accès et sa modification.

  1. Définir un getter pour le kilométrage : Définir 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éfinir un setter pour la propriété mileage qui accepte une nouvelle valeur de kilométrage. Ce setter doit :
    • Autoriser la mise à jour uniquement si le nouveau kilométrage est supérieur à l’actuel (le kilométrage ne peut qu’augmenter) ;
    • Si le nouveau kilométrage n’est pas valide, afficher "Invalid mileage update" et ne pas modifier 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 accesseur get pour mileage afin de récupérer le kilométrage actuel ;
  • Définir un accesseur 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 avec newMileage ;
  • Si newMileage n’est pas supérieur au kilométrage actuel, afficher "Invalid mileage update" et ne pas modifier 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