Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Utfordring: Implementere Getters og Setters i en Klasse | Mastering JavaScript-klasser og Arv
Avansert JavaScript-mestring

bookUtfordring: Implementere Getters og Setters i en Klasse

Oppgave

Du arbeider med en Car-klasse som har en privat egenskap #mileage. Din oppgave er å definere getters og setters for denne egenskapen for å kontrollere hvordan den blir aksessert og endret.

  1. Definer getter for kjørelengde: Definer en getter for egenskapen mileage for å hente gjeldende kjørelengde;
  2. Definer setter for kjørelengde med validering: Definer en setter for egenskapen mileage som aksepterer en ny kjørelengde. Denne setteren skal:
    • Kun tillate oppdatering hvis den nye kjørelengden er større enn gjeldende kjørelengde (kjørelengden kan kun øke);
    • Hvis den nye kjørelengden er ugyldig, logg "Invalid mileage update" og ikke endre gjeldende kjørelengde.
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-tilgangsmetode for mileage for å hente gjeldende kjørelengde;
  • Definer en set-tilgangsmetode for mileage som tar newMileage som parameter;
  • I setteren, sjekk om newMileage er større enn gjeldende kjørelengde (this.#mileage);
  • Hvis newMileage er gyldig, oppdater #mileage til newMileage;
  • Hvis newMileage ikke er større enn gjeldende kjørelengde, logg "Invalid mileage update" og ikke endre kjørelengden.
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

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 10

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

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

bookUtfordring: Implementere Getters og Setters i en Klasse

Sveip for å vise menyen

Oppgave

Du arbeider med en Car-klasse som har en privat egenskap #mileage. Din oppgave er å definere getters og setters for denne egenskapen for å kontrollere hvordan den blir aksessert og endret.

  1. Definer getter for kjørelengde: Definer en getter for egenskapen mileage for å hente gjeldende kjørelengde;
  2. Definer setter for kjørelengde med validering: Definer en setter for egenskapen mileage som aksepterer en ny kjørelengde. Denne setteren skal:
    • Kun tillate oppdatering hvis den nye kjørelengden er større enn gjeldende kjørelengde (kjørelengden kan kun øke);
    • Hvis den nye kjørelengden er ugyldig, logg "Invalid mileage update" og ikke endre gjeldende kjørelengde.
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-tilgangsmetode for mileage for å hente gjeldende kjørelengde;
  • Definer en set-tilgangsmetode for mileage som tar newMileage som parameter;
  • I setteren, sjekk om newMileage er større enn gjeldende kjørelengde (this.#mileage);
  • Hvis newMileage er gyldig, oppdater #mileage til newMileage;
  • Hvis newMileage ikke er større enn gjeldende kjørelengde, logg "Invalid mileage update" og ikke endre kjørelengden.
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

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 10
some-alt