Kursinhalt
Fortgeschrittene JavaScript-Meisterschaft
Fortgeschrittene JavaScript-Meisterschaft
Herausforderung: Verwalten von Eigenschaften mit Getters und Setters
Aufgabe
Sie arbeiten innerhalb einer Car
-Klasse, die eine private #mileage
-Eigenschaft hat. Ihre Aufgabe ist es, Getter und Setter für diese Eigenschaft zu definieren, um zu kontrollieren, wie darauf zugegriffen und sie modifiziert wird.
Getter für Kilometerstand definieren : Definieren Sie einen Getter für die
mileage
-Eigenschaft, um den aktuellen Kilometerstand abzurufen;Setter für Kilometerstand mit Validierung definieren : Definieren Sie einen Setter für die
mileage
-Eigenschaft, der einen neuen Kilometerstandswert akzeptiert. Dieser Setter sollte:Nur eine Aktualisierung zulassen, wenn der neue Kilometerstand größer als der aktuelle ist (der Kilometerstand kann nur steigen);
Wenn der neue Kilometerstand ungültig ist, loggen Sie
"Invalid mileage update"
und ändern Sie den aktuellen Kilometerstand nicht.
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
Definieren Sie einen
get
-Accessor fürmileage
, um den aktuellen Kilometerstand abzurufen;Definieren Sie einen
set
-Accessor fürmileage
, dernewMileage
als Parameter annimmt;Überprüfen Sie im Setter, ob
newMileage
größer ist als der aktuelle Kilometerstand (this.#mileage
);Wenn
newMileage
gültig ist, aktualisieren Sie#mileage
aufnewMileage
;Wenn
newMileage
nicht größer ist als der aktuelle Kilometerstand, protokollieren Sie"Invalid mileage update"
und ändern Sie den Kilometerstand nicht.
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
Danke für Ihr Feedback!