Uitdaging: Implementeer Getters en Setters in een Klasse
Taak
Je werkt binnen een Car-klasse die een privé-eigenschap #mileage heeft. De opdracht is om getters en setters voor deze eigenschap te definiëren om te bepalen hoe deze wordt benaderd en aangepast.
- Definieer Getter voor Mileage: Definieer een getter voor de eigenschap
mileageom de huidige kilometerstand op te halen; - Definieer Setter voor Mileage met Validatie: Definieer een setter voor de eigenschap
mileagedie een nieuwe kilometerstand accepteert. Deze setter moet:- Alleen toestaan dat de kilometerstand wordt bijgewerkt als de nieuwe waarde groter is dan de huidige kilometerstand (de kilometerstand mag alleen toenemen);
- Als de nieuwe kilometerstand ongeldig is, log
"Invalid mileage update"en wijzig de huidige kilometerstand niet.
123456789101112131415161718192021222324252627class 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
- Definieer een
get-accessor voormileageom de huidige kilometerstand op te halen; - Definieer een
set-accessor voormileagedienewMileageals parameter neemt; - Controleer in de setter of
newMileagegroter is dan de huidige kilometerstand (this.#mileage); - Als
newMileagegeldig is, werk#mileagebij naarnewMileage; - Als
newMileageniet groter is dan de huidige kilometerstand, log"Invalid mileage update"en wijzig de kilometerstand niet.
123456789101112131415161718192021222324252627class 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
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
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
Uitdaging: Implementeer Getters en Setters in een Klasse
Veeg om het menu te tonen
Taak
Je werkt binnen een Car-klasse die een privé-eigenschap #mileage heeft. De opdracht is om getters en setters voor deze eigenschap te definiëren om te bepalen hoe deze wordt benaderd en aangepast.
- Definieer Getter voor Mileage: Definieer een getter voor de eigenschap
mileageom de huidige kilometerstand op te halen; - Definieer Setter voor Mileage met Validatie: Definieer een setter voor de eigenschap
mileagedie een nieuwe kilometerstand accepteert. Deze setter moet:- Alleen toestaan dat de kilometerstand wordt bijgewerkt als de nieuwe waarde groter is dan de huidige kilometerstand (de kilometerstand mag alleen toenemen);
- Als de nieuwe kilometerstand ongeldig is, log
"Invalid mileage update"en wijzig de huidige kilometerstand niet.
123456789101112131415161718192021222324252627class 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
- Definieer een
get-accessor voormileageom de huidige kilometerstand op te halen; - Definieer een
set-accessor voormileagedienewMileageals parameter neemt; - Controleer in de setter of
newMileagegroter is dan de huidige kilometerstand (this.#mileage); - Als
newMileagegeldig is, werk#mileagebij naarnewMileage; - Als
newMileageniet groter is dan de huidige kilometerstand, log"Invalid mileage update"en wijzig de kilometerstand niet.
123456789101112131415161718192021222324252627class 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
Bedankt voor je feedback!