Hallo Rolf,
ich glaube, JavaScript ist für mich soeben eine Fremdsprache geworden. Destructuring beim Parameterempfang - argh!
😀
Ich mag es. Es erlaubt deklarativeren und damit besser lesbaren Code und erlaubt es IDEs bessere auto completion zu machen. Wenn ich z.B. diese Funktion definiere:
function foo({start, stop}) {}
dann kann z.B. VS Code beim Aufruf die Eigenschaften start
und stop
automatisch anbieten.
Natürlich könnte man fragen „aber warum nimmst du nicht einfach zwei Argumente?“ – nun, das ist nur ein stark vereinfachtes Beispiel. Die Argumente könnten mehr werden so dass ein Objekt lesbarer ist, oder ich verwende ein Framework wie React, bei dem die Parameter aus einer technischen Notwendigkeit heraus immer als Objekt übergeben werden müssen. Es gibt viele Gründe, warum ein Objekt als Parameter Sinn machen kann.
Edit: sehr praktisch auch zusammen mit dem spread operator:
const {start, stop, ...rest} = props;
Ergibt eine Variable start
mit dem Wert von props.start
, eine Variable stop
mit dem Wert von props.stop
und eine Variable rest
mit einem neuen Objekt, dass alle restlichen Eigenschaften von props
enthält.
Edit 2: das geht übrigens auch mit Arrays, so kann man Tupel nachbilden:
const [elem1, elem2, ...rest] = funReturningATuple();
Und jetzt… jetzt gehe ich erstmal eine Runde Fahrrad fahren 😀
Freundliche Grüße,
Christian Kruse