2016-06-06 13 views
42

Ich sehe immer wieder Funktionen, die auf ich arbeite in einem Code-Basis wie folgt aussehen:Was tun Funktionsparameterlisten in geschweiften Klammern in es6?

const func = ({ param1, param2 }) => { 
    //do stuff 
} 

Was genau tut das? Ich habe es schwer, es bei Google zu finden, weil ich nicht einmal sicher bin, wie das heißt oder wie man es in einer Google-Suche beschreibt.

+0

es ein Pfeil Funktion, die einleitet als Teil ES2015 ist – brk

+6

Ich weiß, was ein Pfeil-Funktion ist. Ich frage nach den Funktionsparametern innerhalb der geschweiften Klammern. – Nathan

Antwort

39

Es ist destructuring, aber in den Parametern enthalten. Das Äquivalent ohne Destrukturierung wäre:

+1

Nur um sicherzugehen, dass ich richtig verstehe, bedeutet das im Grunde, dass ein Objekt mit diesen Eigenschaften in die Funktion übergeben wird, und dann innerhalb der Funktion automatisch auf die Eigenschaften nur über ihren Namen zugegriffen werden kann? – Nathan

+0

hat Ihre Stimme mit einer Stimme erhöht, ich war ein bisschen zu spät :) –

+3

@Nathan Ja, siehe speziell die [Abschnitt zur Destrukturierung von Objekten] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/ Operatoren/Destrukturierungsassignment # Objekt_Destrukturierung). Beachten Sie jedoch, dass Aktualisierungen der Variablen die ursprünglichen Objekteigenschaften nicht aktualisieren - es ist nicht so, als würde ein Verweis auf den ursprünglichen Wert erstellt. –

2

Dies ist ein Objekt als Parameter übergeben. Also nimmt der Parameter der Funktion zunächst ein POJO (Plain old JS object) an, verwendet aber die Objektdekonstruk- tion, wie Sie sie dort verwenden.

Es ist im Grunde eine Abkürzung für {param1: param1, param2: param2}

Verwandte Themen