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
Javascript Logica en Interactie

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?

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