Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Herausforderung: Verwalten von Eigenschaften mit Getters und Setters | Klassen
Fortgeschrittene JavaScript-Meisterschaft
course content

Kursinhalt

Fortgeschrittene JavaScript-Meisterschaft

Fortgeschrittene JavaScript-Meisterschaft

2. DOM-Manipulation
3. Ereignisse und Ereignisbehandlung
4. Asynchrones JavaScript und APIs

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

  1. Getter für Kilometerstand definieren: Definieren Sie einen Getter für die mileage-Eigenschaft, um den aktuellen Kilometerstand abzurufen;
  2. 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.
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
  • Definieren Sie einen get-Accessor für mileage, um den aktuellen Kilometerstand abzurufen;
  • Definieren Sie einen set-Accessor für mileage, der newMileage 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 auf newMileage;
  • Wenn newMileage nicht größer ist als der aktuelle Kilometerstand, protokollieren Sie "Invalid mileage update" und ändern Sie den Kilometerstand nicht.
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

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

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