Menu
Coddy logo textTech

Die Schlüsselwörter get und set

Teil des Abschnitts Objektorientierte Programmierung der JavaScript-Journey von Coddy — Lektion 43 von 56.

Getter und Setter sind spezielle Methoden, die wie Eigenschaften aussehen, aber eigentlich Funktionen sind. Sie geben Ihnen Kontrolle darüber, wie auf Eigenschaften zugegriffen wird und wie diese geändert werden.

Erstellen wir eine einfache Person-Klasse:

class Person {
  constructor(firstName, lastName) {
    this._firstName = firstName;
    this._lastName = lastName;
  }
  
  // Getter für fullName
  get fullName() {
    return `${this._firstName} ${this._lastName}`;
  }
  
  // Setter für fullName
  set fullName(value) {
    const parts = value.split(' ');
    this._firstName = parts[0];
    this._lastName = parts[1];
  }
}

Jetzt können wir diese Getter und Setter wie Eigenschaften verwenden:

// Erstelle eine neue Person
const person = new Person('John', 'Doe');

// Verwende den Getter
console.log(person.fullName); // Ausgabe: John Doe

// Verwende den Setter
person.fullName = 'Jane Smith';

// Der Setter hat die internen Eigenschaften aktualisiert
console.log(person.fullName); // Ausgabe: Jane Smith

Beachten Sie, dass wir diese Methoden nicht mit Klammern aufrufen. Sie verhalten sich genau wie Eigenschaften, führen aber Code aus, wenn auf sie zugegriffen wird oder sie geändert werden.

challenge icon

Aufgabe

Ihnen wird eine User-Klasse mit einer age-Eigenschaft gegeben. Ihre Aufgabe ist es, einen Getter und einen Setter für age hinzuzufügen, die Folgendes tun:

  1. Getter <strong>get age()</strong>: gibt das gespeicherte Alter zurück
  2. Setter <strong>set age(newAge)</strong>: validiert, dass das Alter zwischen 0 und 120 liegt
    • Wenn gültig (0-120): Speichern Sie es in this._age
    • Wenn ungültig: Ändern Sie es nicht und geben Sie "Invalid age!" aus

Spickzettel

Getter und Setter sind spezielle Methoden, die wie Eigenschaften aussehen, aber Code ausführen, wenn auf sie zugegriffen wird oder sie geändert werden.

Getter - verwenden Sie das Schlüsselwort get, um eine Methode zu definieren, die einen Wert zurückgibt:

class Person {
  constructor(firstName, lastName) {
    this._firstName = firstName;
    this._lastName = lastName;
  }
  
  get fullName() {
    return `${this._firstName} ${this._lastName}`;
  }
}

Setter - verwenden Sie das Schlüsselwort set, um eine Methode zu definieren, die einen Wert entgegennimmt:

class Person {
  set fullName(value) {
    const parts = value.split(' ');
    this._firstName = parts[0];
    this._lastName = parts[1];
  }
}

Verwendung - greifen Sie auf Getter und Setter wie auf Eigenschaften zu (ohne Klammern):

const person = new Person('John', 'Doe');

// Using getter
console.log(person.fullName); // John Doe

// Using setter
person.fullName = 'Jane Smith';
console.log(person.fullName); // Jane Smith

Probier es selbst

import { User } from './user.js';

// Testcode - nicht ändern
const user = new User("Alice", 25);
console.log(user.age);      // Sollte 25 ausgeben

user.age = 30;
console.log(user.age);      // Sollte 30 ausgeben

user.age = 150;             // Sollte "Invalid age!" anzeigen
console.log(user.age);      // Sollte weiterhin 30 ausgeben (unverändert)

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Objektorientierte Programmierung