Funktionen, die Objekte erstellen
Eine Funktion kann auch ein Objekt zurückgeben. Das ist praktisch, wenn du viele Objekte derselben Form erstellst: Du schreibst die Schlüssel nur einmal, in der Funktion, und jedes Objekt, das sie erstellt, hat dieselben Eigenschaften.
function erstelleBuch(titel, autor) {
return {
titel: titel,
autor: autor,
verfuegbar: true
};
}
const buch = erstelleBuch("Matilda", "Roald Dahl");
console.log(buch);{ titel: "Matilda", autor: "Roald Dahl", verfuegbar: true }titel: titel sieht vielleicht seltsam aus. Links vom Doppelpunkt steht der Schlüssel, der Name der neuen Eigenschaft. Rechts steht ihr Wert: der Parameter titel, der in diesem Aufruf "Matilda" enthält. Ein neues Buch ist immer verfügbar, also ist verfuegbar in jedem Buch, das die Funktion erstellt, true.
In fremdem Code siehst du oft eine kürzere Form: { titel, autor }. Wenn eine Eigenschaft denselben Namen haben soll wie die Variable, die ihren Wert enthält, kannst du den Namen nur einmal schreiben. { titel, autor } bedeutet genau dasselbe wie { titel: titel, autor: autor }. Du kannst beides benutzen.
Ein neues Objekt kann direkt in ein Array gehen:
const bibliothek = [];
bibliothek.push(erstelleBuch("Matilda", "Roald Dahl"));
bibliothek.push(erstelleBuch("Momo", "Michael Ende"));
console.log(bibliothek);[{ titel: "Matilda", autor: "Roald Dahl", verfuegbar: true }, { titel: "Momo", autor: "Michael Ende", verfuegbar: true }]Ein typischer Fehler ist, return zu vergessen. Die Funktion gibt dann undefined zurück, und die Bibliothek wäre [undefined, undefined].
So schreibst du es:
Anweisungen
- 1
Vervollständige die Funktion
erstelleProdukt, sodass sie ein Objekt mit den Eigenschaftennameundpreiszurückgibt. Das Programm sollte dann{ name: "Vogelfutter", preis: 90 }ausgeben. - 2
Erstelle darunter eine Konstante
warenkorbmit einem leeren Array. Füge ihr mitpush()understelleProdukt()zwei Produkte hinzu:"Katzenbett"für400und"Katzenspielzeug"für35. Gibwarenkorbaus.