Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Utmaning: Implementera Getters och Setters i en Klass | Bemästra JavaScript-klasser och Arv
Avancerad JavaScript-mästerskap

bookUtmaning: Implementera Getters och Setters i en Klass

Uppgift

Du arbetar med en Car-klass som har en privat egenskap #mileage. Din uppgift är att definiera getters och setters för denna egenskap för att kontrollera hur den nås och ändras.

  1. Definiera getter för mileage: Definiera en getter för egenskapen mileage för att hämta nuvarande körsträcka;
  2. Definiera setter för mileage med validering: Definiera en setter för egenskapen mileage som accepterar ett nytt värde. Denna setter ska:
    • Endast tillåta uppdatering om det nya värdet är större än nuvarande körsträcka (körsträckan kan endast öka);
    • Om det nya värdet är ogiltigt, logga "Invalid mileage update" och ändra inte nuvarande körsträcka.
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
  • Definiera en get-accessor för mileage för att hämta nuvarande körsträcka;
  • Definiera en set-accessor för mileage som tar newMileage som parameter;
  • I settern, kontrollera om newMileage är större än nuvarande körsträcka (this.#mileage);
  • Om newMileage är giltigt, uppdatera #mileage till newMileage;
  • Om newMileage inte är större än nuvarande körsträcka, logga "Invalid mileage update" och ändra inte körsträckan.
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 allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 10

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 2.22

bookUtmaning: Implementera Getters och Setters i en Klass

Svep för att visa menyn

Uppgift

Du arbetar med en Car-klass som har en privat egenskap #mileage. Din uppgift är att definiera getters och setters för denna egenskap för att kontrollera hur den nås och ändras.

  1. Definiera getter för mileage: Definiera en getter för egenskapen mileage för att hämta nuvarande körsträcka;
  2. Definiera setter för mileage med validering: Definiera en setter för egenskapen mileage som accepterar ett nytt värde. Denna setter ska:
    • Endast tillåta uppdatering om det nya värdet är större än nuvarande körsträcka (körsträckan kan endast öka);
    • Om det nya värdet är ogiltigt, logga "Invalid mileage update" och ändra inte nuvarande körsträcka.
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
  • Definiera en get-accessor för mileage för att hämta nuvarande körsträcka;
  • Definiera en set-accessor för mileage som tar newMileage som parameter;
  • I settern, kontrollera om newMileage är större än nuvarande körsträcka (this.#mileage);
  • Om newMileage är giltigt, uppdatera #mileage till newMileage;
  • Om newMileage inte är större än nuvarande körsträcka, logga "Invalid mileage update" och ändra inte körsträckan.
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 allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 10
some-alt