2016-06-06 14 views
42

Continuo a funzioni che assomigliano a questo in una base di codice vedere su cui sto lavorando:Cosa fanno gli elenchi dei parametri delle funzioni all'interno delle parentesi graffe in es6?

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

che cosa è esattamente questo facendo? Ho difficoltà a trovarlo su google, perché non sono nemmeno sicuro di come si chiami o di come descriverlo in una ricerca su google.

+0

si tratta di una funzione di freccia che si presenta come parte di ES2015 – brk

+6

so cosa è una funzione freccia. Sto chiedendo i parametri della funzione all'interno delle parentesi graffe. – Nathan

risposta

39

È destructuring, ma contenuto nei parametri. L'equivalente senza la destrutturazione sarebbe:

const func = o => { 
    var param1 = o.param1; 
    var param2 = o.param2; 
    //do stuff 
} 
+1

Giusto per essere sicuro di capire correttamente, in pratica questo significa che un oggetto contenente tali proprietà verrà passato alla funzione, e quindi all'interno della funzione, le proprietà possono essere automaticamente accessibili usando il loro nome? – Nathan

+0

aumentato il tuo con un voto, ero un po 'troppo tardi :) –

+3

@Nathan Sì, vedi in particolare la [sezione su Object destructuring] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/ Gli operatori/Destructuring_assignment # Object_destructuring). Si noti tuttavia che gli aggiornamenti alle variabili non aggiornano le proprietà dell'oggetto originale: non è come se stesse creando un riferimento al valore originale. –

2

Questo sta passando un oggetto come parametro. Quindi il parametro della funzione prende inizialmente un POJO (Plain old JS object) ma usa la decostruzione di oggetti come se ne steste usando lì.

Si tratta essenzialmente di una scorciatoia per {param1: param1, param2: param2}

Problemi correlati