Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Uitdaging: Implementeer Getters en Setters in een Klasse | Beheersing van JavaScript-Klassen en Overerving
Geavanceerde JavaScript-Beheersing

bookUitdaging: 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.

  1. Definieer Getter voor Mileage: Definieer een getter voor de eigenschap mileage om de huidige kilometerstand op te halen;
  2. Definieer Setter voor Mileage met Validatie: Definieer een setter voor de eigenschap mileage die 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.
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
  • Definieer een get-accessor voor mileage om de huidige kilometerstand op te halen;
  • Definieer een set-accessor voor mileage die newMileage als parameter neemt;
  • Controleer in de setter of newMileage groter is dan de huidige kilometerstand (this.#mileage);
  • Als newMileage geldig is, werk #mileage bij naar newMileage;
  • Als newMileage niet groter is dan de huidige kilometerstand, log "Invalid mileage update" en wijzig de kilometerstand niet.
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

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 10

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

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

bookUitdaging: 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.

  1. Definieer Getter voor Mileage: Definieer een getter voor de eigenschap mileage om de huidige kilometerstand op te halen;
  2. Definieer Setter voor Mileage met Validatie: Definieer een setter voor de eigenschap mileage die 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.
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
  • Definieer een get-accessor voor mileage om de huidige kilometerstand op te halen;
  • Definieer een set-accessor voor mileage die newMileage als parameter neemt;
  • Controleer in de setter of newMileage groter is dan de huidige kilometerstand (this.#mileage);
  • Als newMileage geldig is, werk #mileage bij naar newMileage;
  • Als newMileage niet groter is dan de huidige kilometerstand, log "Invalid mileage update" en wijzig de kilometerstand niet.
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

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 10
some-alt