2016-02-20 14 views
9

Stavo costruendo un'app per reagire dove ho trovato una linea in uno dei progetti di lastre di caldaia.cosa significa (stato = {}) => stato significa

(state = {}) => state 

Qualcuno può spiegarmi cosa significa la riga sopra? È javascript ES6 standard.

+2

possibile duplicato di [Qual è il significato di "=>" (una freccia formata da uguale e maggiore di) in JavaScript?] (Http://stackoverflow.com/q/24900875/1048572) – Bergi

+0

non sono sicuro di come questo la domanda ha ottenuto così tanti voti positivi. – naomik

risposta

7

È una funzione (n freccia) che restituisce il suo input. Se l'input non è definito, diventerà il valore predefinito {}.

Si potrebbe averlo visto in combinazione con l'uso della "connessione" di Redux, come la funzione che associa lo stato del negozio alla proiezione utilizzata per il componente connesso. Se non è disponibile uno stato, verrà fornito l'oggetto vuoto.

7

Questo è un arrow function con un default parameter che restituisce il suo input o un oggetto vuoto, se non è stato fornito alcun input. E 'simile a questo ES-5 funzione:

function(){ 
    var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; 
    return state; 
} 
+0

I parametri predefiniti non sostituiscono i valori falsy. – Oriol

+1

Sì, ora dovrebbero essere equivalenti. – Oriol

+0

Era strano, non ho visto questa risposta quando ho postato il mio. –

3

si potrebbe essere più familiarità con questa notazione:

function(state) { 
    if (!state) state = {}; // state defaults to {} 
    return state; 
} 

Quello che avete visto è ES6 zucchero sintattico: function(state = {}) { ... } è una notazione abbreviata per i valori di default (state per impostazione predefinita {}) e (a) => b è una notazione abbreviata per function(a) { return b }. Se li metti insieme, ottieni (state = {}) => state.