Warum einfach, wenn’s auch JavaScript geht?

Da ich mich beruflich nun zusätzlich zu Java, Swift und Obj-C auch noch mit JavaScript herumschlagen muss beschäftigen darf, bin ich zufällig über folgende Perle in den Mozilla Docs gestoßen:

function f(...[a, b, c]) {
    return a + b + c;
}

f(1)          // NaN (b and c are undefined)
f(1, 2, 3)    // 6
f(1, 2, 3, 4) // 6 (the fourth parameter is not destructured)

Betrachten wir doch ganz kurz, was hier geschieht. Es wird eine Funktion definiert, die über Rest parameters eine beliebige Anzahl an Parametern übernimmt (was JavaScript ja sowieso akzeptiert), die zunächst in ein Array gepackt werden. Dieses Array wird dann über das neue Destructuring der Reihe nach wieder den Variablen a, b und c zugewiesen.

Natürlich ist das nur ein akademisches Beispiel. Aber wenn ich mich nicht irre, dann ist das doch das gleiche, als würde man von vornherein ganz klassisch schreiben:

function f(a, b, c) {
    return a + b + c;
}

Geil, wa?

PS: Danke an Marc für’s freundliche Verlinken hiervon.

Bookmark the permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.