Menu
Coddy logo textTech

Kapselung

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

Kapselung ist ein Prozess, bei dem Daten innerhalb einer Klasse zu einer Einheit zusammengefasst werden.

Dies hilft dabei, den direkten Zugriff auf Klassendaten einzuschränken, und trägt letztendlich dazu bei, versehentliche Änderungen an den Daten zu verhindern. 

Sehen wir uns die Kapselung anhand eines einfachen Beispiels in Aktion an. Erstelle ein einfaches Objekt mit öffentlichen Eigenschaften:

const user = {
  name: "John",
  email: "john@example.com"
};

Jeder kann direkt auf diese Eigenschaften zugreifen und sie ändern:

user.name = "Jane"; // Leicht von außen zu ändern
console.log(user.email); // Leicht von außen zugänglich

Ein stärker gekapselter Ansatz verwendet Closures, um Daten zu verbergen:

function createUser(name, email) {
  // Diese Variablen sind privat (gekapselt)
  let userName = name;
  let userEmail = email;
  
  // Gibt ein Objekt mit Methoden zurück, um mit den privaten Daten zu interagieren
  return {
    getName: function() {
      return userName;
    },
    getEmail: function() {
      return userEmail;
    },
    setName: function(newName) {
      userName = newName;
    }
  };
}
const encapsulatedUser = createUser("John", "john@example.com");

Nun, um mit den Daten zu interagieren:

console.log(encapsulatedUser.getName()); // "John"
encapsulatedUser.setName("Jane");
console.log(encapsulatedUser.getName()); // "Jane"

// Kann nicht direkt auf die Daten zugreifen
console.log(encapsulatedUser.userName); // undefined
challenge icon

Aufgabe

Dir wurde Code gegeben, der Kapselung verwendet, um Benutzerdaten zu schützen. Deine Aufgabe besteht darin, eine getAge()-Methode hinzuzufügen, um auf das Alter zuzugreifen.

Die Tests überprüfen:

  • Die getAge()-Methode ist vorhanden
  • Sie gibt das korrekte Alter zurück
  • Die Altersinformationen bleiben privat

Erwartete Ausgabe:

john_doe

25

Probier es selbst

import { createUser } from './createUser.js';

// Testcode - nicht ändern
const user = createUser("john_doe", 25);
console.log(user.getUsername()); // Sollte "john_doe" ausgeben
console.log(user.getAge());      // Sollte 25 ausgeben

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

Übe selbstständig: Online-JavaScript-Compiler