JavaScript Schnellstart: Objekte

Jetzt kommt etwas einfaches. Dieser neue Datentyp ist eine Zusammensetzung von Datentypen.

Bisher haben wir Daten in Form von Text, Zahlen sowie Logik gespeichert und geladen. Unsere Programme bestehen aber nicht nur aus diesen Elementen.

Verarbeitung von verschiedenen Datentypen - z.B. Datum

Nimm zum Beispiel ein Datum: 24.12.2024

Man könnte das Datum logischerweise als Text darstellen, aber wie könnte man dann Tage oder Monate des Datums verändern?

Du erinnerst dich: Bevor wir mit Zahlen in einem Text rechnen können, müssen wir diese umwandeln. Bei einem Datum im Text haben wir allerdings gleich 3 Zahlen. Das auseinanderzupflücken ist sehr aufwendig. Die Lösung dafür ist das Objekt.

Was ist ein Objekt?

Ein Objekt kann zusammengehörende Variablen und Funktionen in eine Variable vereinen. Bauen wir uns mal ein einfaches Datenobjekt für unser Startdatum zum Mond:

var startDatum = {
  tag : 24,
  monat : 12,
  jahr : 2024
};

Auf Objektinhalte zugreifen

Auf die Inhalte des Objektes kannst du über einen Punkt zugreifen, geben wir einmal das Jahr aus:

ausgeben("Wir starten im Jahr: " + startDatum.jahr);

Wenn du also später Variablen benötigst, die aus mehr Daten als nur Text, Zahlen und Logik bestehen, baust du dir ein Objekt.

Es gibt noch eine Besonderheit bei Objekten. Sie können Funktionen speichern. Wäre doch super, wenn das startDatum von vorhin sich selbst als Text ausgeben könnte, oder? Das Ganze sieht so aus:

var startDatum = {
  tag : 24,
  monat : 12,
  jahr : 2020,
  alsText : function() {
    return (this.tag + "." + this.monat + "." + this.jahr);
  }
};

ausgeben("Wir starten am Datum: " + startDatum.alsText());
Code ausprobieren ×

Was return bedeutet, lernst du gleich 😉

Das this. innerhalb der Objektfunktion bedeutet, dass auf die Inhalte der aktuellen Variable zugegriffen werden soll. Hier gibt es ein paar Regeln, die man beachten muss, aber für erste ist nur die Information für dich wichtig.

Du kannst in Objekten komplexe Datenstrukturen sowie Funktionen speichern und benutzen.

Und: Objekte können andere Objekte beinhalten. Nur so ist man heute in der Lage komplexe Programme zu entwickeln.

Wenn du später programmierst, wirst du auf die komplexesten Objekte treffen, die sogar Objekte aus der echten Welt nachbilden.

Erstmal schauen wir in die Übung:

[lp_spoiler title="Lösung anzeigen" style="simple"]

function start() {
  var startTermin = {
    tag : 24,
    monat : 12,
    jahr : 2020,
    stunde: 15,
    alsText : function() {
      return (this.tag + "." + this.monat + "." + this.jahr+ "  " + this.stunde);
    }
  };

  ausgeben("Wir starten mit dem Flug am: " + startTermin.alsText() + " Uhr");
}

[/lp_spoiler]