2016-07-22 10 views
5

Ich habe this tutorial beim Einrichten von React with Redux gefolgt, und ich bemerkte eine Syntax, die ich nicht kenne. Was machen die geschweiften Klammern in der Funktionsparameterdefinition?JS: Was bedeuten die geschweiften Klammern innerhalb von Funktionsparameterdeklarationen?

Beispiel:

function Stream({ tracks = [], onAuth }) { #what is going on here? 
 
    return (
 
    <div> 
 
     ... #component stuff here 
 
    </div> 
 
); 
 
}

Ist das spezifische reagieren? Oder hat das etwas mit Babel oder einer anderen Bibliothek zu tun? Ich bin neu in dieser Technologie, also nicht sicher, was vor sich geht.

+0

Der Funktion wird ein Objektliteral als Parameter übergeben. – Hopeless

+0

Was bedeutet das? Dass die Funktion, wenn sie aufgerufen wird, ein Objektliteral haben muss? Wie übergibt man einer Funktion wie dieser? – derigible

+0

Es sieht aus wie Destrukturierungssyntax, aber ich wusste nicht, dass Javascript Destrukturierung hatte. Wenn dies der Fall ist, erwartet die Funktion ein Objekt mit einem 'tracks'-Feld (es kann jedoch eine leere Liste des Objekts verwendet werden, nicht Hebert) und ein 'onAuth'-Feld, das angegeben werden muss. Es ist im Grunde eine bessere Möglichkeit, auf die Felder des übergebenen Objekts zuzugreifen. – Carcigenicate

Antwort

5

Es sieht aus wie Destrukturierungssyntax, aber ich wusste nicht Javascript hatte Destrukturierung.

Wenn das ist, was es ist, wird die Funktion ein Objekt mit einem tracks Bereich erwartet (aber auf eine leere Liste Standard kann, wenn das Objekt nicht ein hat) und ein onAuth Feld, das zu undefined ausfällt. Es ist im Grunde eine bessere Art, auf die Felder des übergebenen Objekts zuzugreifen.

+1

onAuth muss nicht geliefert werden. eine lokale Variable wird entweder mit undefined oder dem übergebenen Wert – eltonkamami

+0

@eltonkamami Whoops erstellt. Korrigiert. Vielen Dank. – Carcigenicate