In diesem Beitrag lernst du, was Objekte in JavaScript sind – einfach und praxisnah erklärt.
Objekte helfen dir dabei, mehrere zusammengehörige Informationen übersichtlich in einer Struktur zu speichern.
Besonders im Smart-Home-Umfeld, z. B. mit Shelly-Geräten, sind Objekte sehr nützlich!
Inhaltsverzeichnis
- Was ist ein Objekt?
- Arrays vs. Objekte – Was ist der Unterschied?
- Auf Werte im Objekt zugreifen
- Werte im Objekt ändern
- Warum sind Objekte so hilfreich?
- Fazit
Was ist ein Objekt?
Ein Objekt ist eine Sammlung von Eigenschaften (sogenannten Attributen), die mit Werten verknüpft sind. Diese Werte können z. B. Zahlen, Texte oder sogar andere Objekte sein.
Beispiel: Ein Shelly-Gerät als Objekt
let geraet = { id: 1, name: "Shelly DUO", ip: "192.168.178.25", status: "OFF", wifi_config: { ssid: "ABC", password: "xzy12345678" } };
Arrays vs. Objekte – Was ist der Unterschied?
Im vorherigen Beitrag hast du gelernt, wie man mit Arrays mehrere Werte in einer Liste speichert. Ein Array eignet sich besonders gut für gleichartige Daten, wie zum Beispiel eine Liste von Gerätezuständen:
let schaltZustaende = ["ON", "OFF", "ON"];
Hier weiß man: An Position 0 steht der Zustand des ersten Geräts, an Position 1 der Zustand des zweiten Geräts, usw.
👉 Aber: Man muss sich merken, welche Position für welches Gerät steht – und das kann schnell unübersichtlich werden.
Auf Werte im Objekt zugreifen
Zugriff mit Punktnotation:
print(geraet.name); // Ausgabe: Shelly DUO
Zugriff mit eckigen Klammern (wenn z. B. der Schlüssel dynamisch ist):
let eigenschaft = "status"; print(geraet[eigenschaft]); // Ausgabe: OFF
Werte im Objekt ändern
Du kannst einzelne Werte einfach überschreiben:
geraet.status = "ON"; // Status wird geändert print(geraet.status); // Ausgabe: ON
Funktion zur Statusänderung
Beispiel: Status umschalten (ON ⇄ OFF)
function toggleStatus(obj) { if (obj.status === "ON") { obj.status = "OFF"; } else { obj.status = "ON"; } } toggleStatus(geraet); // Status wird von OFF auf ON gesetzt print(geraet.status); // Ausgabe: ON
Warum sind Objekte so hilfreich?
Mit Objekten kannst du:
- mehrere Informationen übersichtlich in einer einzigen Variablen speichern
- dein Skript strukturierter und verständlicher machen
- später sogar mehrere Geräte in einem Array verwalten
Unterschied zwischen einem JavaScript-Objekt und einem JSON-Dokument
Auf den ersten Blick sehen JavaScript-Objekte und JSON-Daten sehr ähnlich aus – sie bestehen beide aus Schlüssel-Wert-Paaren:
JavaScript-Objekt:
let geraet = { id: 1, name: "Shelly DUO", status: "ON" };
JSON (JavaScript Object Notation):
{ "id": 1, "name": "Shelly DUO", "status": "ON" }
Der entscheidende Unterschied:
Merkmal | JavaScript-Objekt | JSON-Dokument |
---|---|---|
Format | echtes Objekt im Code | reine Textdarstellung (String) |
Schlüssel | dürfen unquoted (ohne Anführungszeichen) sein | müssen immer in „doppelten Anführungszeichen stehen |
Datentypen | Funktionen, Variablen, Werte möglich | Nur Zahlen, Strings, Arrays, Objekte, Boolean, null |
Verwendung | direkt im Code nutzbar | muss erst mit JSON.parse() umgewandelt werden |
Typ | Objekt | String |
JSON <-> Objekt umwandeln
Von JSON zu JavaScript-Objekt:
let jsonString = '{"id":1,"name":"Shelly DUO","status":"ON"}'; let geraet = JSON.parse(jsonString);
Von Objekt zu JSON (z. B. für Web-Request):
let jsonText = JSON.stringify(geraet);
Fazit
Objekte sind eine tolle Möglichkeit, um in Shelly Scripting mehr Übersicht und Ordnung zu schaffen.
Du kannst Eigenschaften speichern, ändern und mit Funktionen bearbeiten – und bist damit bestens für komplexere Automationen vorbereitet.