Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Sfida: Implementare Getter e Setter in una Classe | Padronanza delle Classi e dell'Ereditarietà in JavaScript
Logica e Interazione in JavaScript

bookSfida: Implementare Getter e Setter in una Classe

Compito

Si sta lavorando all'interno di una classe Car che possiede una proprietà privata #mileage. L'obiettivo è definire getter e setter per questa proprietà per controllarne l'accesso e la modifica.

  1. Definizione del Getter per Mileage: Definire un getter per la proprietà mileage per recuperare il valore attuale del chilometraggio;
  2. Definizione del Setter per Mileage con Validazione: Definire un setter per la proprietà mileage che accetti un nuovo valore di chilometraggio. Questo setter deve:
    • Consentire l'aggiornamento solo se il nuovo chilometraggio è maggiore di quello attuale (il chilometraggio può solo aumentare);
    • Se il nuovo chilometraggio non è valido, registrare "Invalid mileage update" e non modificare il valore attuale.
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
  • Definire un accessore get per mileage per recuperare il chilometraggio attuale;
  • Definire un accessore set per mileage che accetti newMileage come parametro;
  • Nel setter, verificare se newMileage è maggiore del chilometraggio attuale (this.#mileage);
  • Se newMileage è valido, aggiornare #mileage con newMileage;
  • Se newMileage non è maggiore del chilometraggio attuale, registrare "Invalid mileage update" e non modificare il chilometraggio.
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

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 10

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

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

bookSfida: Implementare Getter e Setter in una Classe

Scorri per mostrare il menu

Compito

Si sta lavorando all'interno di una classe Car che possiede una proprietà privata #mileage. L'obiettivo è definire getter e setter per questa proprietà per controllarne l'accesso e la modifica.

  1. Definizione del Getter per Mileage: Definire un getter per la proprietà mileage per recuperare il valore attuale del chilometraggio;
  2. Definizione del Setter per Mileage con Validazione: Definire un setter per la proprietà mileage che accetti un nuovo valore di chilometraggio. Questo setter deve:
    • Consentire l'aggiornamento solo se il nuovo chilometraggio è maggiore di quello attuale (il chilometraggio può solo aumentare);
    • Se il nuovo chilometraggio non è valido, registrare "Invalid mileage update" e non modificare il valore attuale.
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
  • Definire un accessore get per mileage per recuperare il chilometraggio attuale;
  • Definire un accessore set per mileage che accetti newMileage come parametro;
  • Nel setter, verificare se newMileage è maggiore del chilometraggio attuale (this.#mileage);
  • Se newMileage è valido, aggiornare #mileage con newMileage;
  • Se newMileage non è maggiore del chilometraggio attuale, registrare "Invalid mileage update" e non modificare il chilometraggio.
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

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 10
some-alt