04 – Objekte & Klassen


JavaScript Objects, Classes & Instanzen

JS Logo

Lernziele dieser Lektion

  • Verstehen, was Objekte in JavaScript sind
  • Eigenschaften und Methoden von Objekten kennen
  • Objekte lesen, ändern und erweitern
  • Klassen als Bauplan für Objekte verstehen
  • Instanzen mit dem new-Keyword erstellen

Was ist ein Objekt?

Ein Objekt ist eine Sammlung von zusammengehörigen Daten und Funktionen.

  • Daten werden als Properties gespeichert
  • Funktionen innerhalb von Objekten heissen Methoden
  • Objekte beschreiben reale oder logische Dinge

Einfaches Objekt


        const person = {
            name: "Anna",
            alter: 22,
            greet: function() {
                console.log("Hallo, ich bin " + this.name);
            }
        };
    

Auf Properties zugreifen


        console.log(person.name);
        console.log(person["alter"]);
    

Beide Varianten sind gültig.

Methoden aufrufen


        person.greet();
    

this verweist auf das aktuelle Objekt.

Objekte verändern


        person.alter = 23;
        person.wohnort = "Zürich";
    
  • Properties können geändert werden
  • Neue Properties können jederzeit hinzugefügt werden

Warum Klassen?

Klassen sind Baupläne für Objekte.

  • Vermeiden Code-Wiederholung
  • Erlauben strukturierte Objekt-Erstellung
  • Sehr wichtig für grössere Anwendungen

Eine Klasse definieren


        class Person {
            constructor(name, alter) {
                this.name = name;
                this.alter = alter;
            }

            greet() {
                console.log("Hallo, ich bin " + this.name);
            }
        }
    

Der Constructor

  • Wird automatisch beim Erstellen eines Objekts aufgerufen
  • Initialisiert die Properties
  • Nutzen von this zwingend notwendig

Objekte aus Klassen erstellen


        const p1 = new Person("Luca", 19);
        const p2 = new Person("Mia", 21);

        p1.greet();
        p2.greet();
    

Mehrere Methoden


        class Auto {
            constructor(marke, km) {
                this.marke = marke;
                this.km = km;
            }

            fahren(strecke) {
                this.km += strecke;
            }
        }
    

Objekte vs Klassen

Objekt Konkrete Instanz
Klasse Bauplan
Instanz Objekt aus einer Klasse

Typische Einsatzgebiete

  • Benutzer
  • Produkte
  • Fahrzeuge
  • Spielelemente
  • UI-Komponenten

TL;DR

  • Objekte speichern Daten und Funktionen
  • Properties = Werte, Methoden = Funktionen
  • Klassen sind Baupläne für Objekte
  • Instanzen werden mit new erstellt
  • this verweist auf das aktuelle Objekt