Rückgabewert und Parameter?
Ich habe in JavaScript diese Beispiele nicht ganz verstanden:
function xyz(value)
oder
function xyz({value})
Was sind die Unterschiede und könnt ihr eventuell einfach Beispiele machen, damit es anschaulicher wirkt?
3 Antworten
Hallo Tekeli03,
die erste Funktion nimmt eine simple Variable als Parameter, kann in diesem Fall alles sein.
Die zweite Funktion definiert als Parameter "value", welches aus einem Objekt destrukturiert wird, welches ein Attribut "value" hat.
Beispiel:
function xyz(value) {
console.log(value);
}
function xyz2({ value }) {
console.log(value);
}
xyz(1); // Loggt: 1
xyz({ value: 1 }); // Loggt: { value: 1 }
xyz2(1); // Loggt undefined, da kein Objekt mit dem Attribut value übergeben wird
xyz2({ value: 1 }); // Loggt 1, da in dem Objekt, welches übergeben wird, ein Attribut value mit dem Wert 1 enthalten ist
Weitere Infos siehe Destructuring assignment - JavaScript | MDN (mozilla.org)
Das obige Beispiel musst du so aufrufen:
xyz("Wert");
Das untere Beispiel so:
xyz({value: "Wert"});
Oben erhält die Funktion also direkt ihre Parameter, unten bekommt sie sie über ein Objekt. Die untere Variante hat bspw. den Vorteil, dass die Argumente beliebig angeordnet werden können und sie auch stets mit ihrem Namen angesprochen werden müssen.
Bei der ersten Variante nimmt die Funktion das Argument direkt so, wie es ist und bei der zweiten Variante kriegt die Funktion ein Objekt, was einen Key namens "value" enthält, der dann innerhalb der Funktion als Variable "value" angesprochen werden kann.