Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Udfordring: Implementering af Getters og Setters i en Klasse | Mestering af JavaScript-klasser og Arv
Avanceret JavaScript-Mestring

bookUdfordring: Implementering af Getters og Setters i en Klasse

Opgave

Du arbejder med en Car-klasse, der har en privat egenskab #mileage. Din opgave er at definere getters og setters for denne egenskab for at kontrollere, hvordan den tilgås og ændres.

  1. Definer getter for Mileage: Definer en getter for egenskaben mileage til at hente den aktuelle kilometerstand;
  2. Definer setter for Mileage med validering: Definer en setter for egenskaben mileage, der accepterer en ny kilometerstand. Denne setter skal:
    • Kun tillade opdatering, hvis den nye kilometerstand er større end den nuværende (kilometerstanden kan kun øges);
    • Hvis den nye kilometerstand er ugyldig, log "Invalid mileage update" og ændr ikke den nuværende kilometerstand.
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
  • Definer en get accessor for mileage til at hente den aktuelle kilometerstand;
  • Definer en set accessor for mileage, der tager newMileage som parameter;
  • I setter-funktionen kontrolleres, om newMileage er større end den nuværende kilometerstand (this.#mileage);
  • Hvis newMileage er gyldig, opdateres #mileage til newMileage;
  • Hvis newMileage ikke er større end den nuværende kilometerstand, logges "Invalid mileage update", og kilometerstanden ændres ikke.
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

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 10

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

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?

Awesome!

Completion rate improved to 2.22

bookUdfordring: Implementering af Getters og Setters i en Klasse

Stryg for at vise menuen

Opgave

Du arbejder med en Car-klasse, der har en privat egenskab #mileage. Din opgave er at definere getters og setters for denne egenskab for at kontrollere, hvordan den tilgås og ændres.

  1. Definer getter for Mileage: Definer en getter for egenskaben mileage til at hente den aktuelle kilometerstand;
  2. Definer setter for Mileage med validering: Definer en setter for egenskaben mileage, der accepterer en ny kilometerstand. Denne setter skal:
    • Kun tillade opdatering, hvis den nye kilometerstand er større end den nuværende (kilometerstanden kan kun øges);
    • Hvis den nye kilometerstand er ugyldig, log "Invalid mileage update" og ændr ikke den nuværende kilometerstand.
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
  • Definer en get accessor for mileage til at hente den aktuelle kilometerstand;
  • Definer en set accessor for mileage, der tager newMileage som parameter;
  • I setter-funktionen kontrolleres, om newMileage er større end den nuværende kilometerstand (this.#mileage);
  • Hvis newMileage er gyldig, opdateres #mileage til newMileage;
  • Hvis newMileage ikke er større end den nuværende kilometerstand, logges "Invalid mileage update", og kilometerstanden ændres ikke.
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

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 10
some-alt