2016-02-20 112 views
9

我正在建立一個應用程序的反應,在其中一個鍋爐板項目中找到一條線。什麼是(狀態= {})=>狀態表示

(state = {}) => state 

任何人都可以向我解釋上面的行是什麼意思? 這是javascript ES6標準。

+2

可能的重複[在JavaScript中對「=>」(等於和大於等於一個箭頭)的含義是什麼意思?](http://stackoverflow.com/q/24900875/1048572) – Bergi

+0

真的不知道這是怎麼回事問題有很多回應 – naomik

回答

7

它是一個返回其輸入的(n箭頭)函數。如果輸入未定義,它將成爲默認值{}。

您可能已經將它與使用redux'「connect」結合起來看作是將商店狀態映射到用於連接組件的投影的函數。如果沒有可用狀態,則會提供空對象。

7

這是一個arrow function,其中default parameter返回其輸入或一個空對象,如果沒有提供輸入。它類似於此ES-5功能:

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

默認參數不會取代falsy值。 – Oriol

+1

是的,現在它們應該是等價的。 – Oriol

+0

這很奇怪,當我發佈我的時候,我沒有看到這個答案。 –

3

你可能會更熟悉這種表示:

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

你看到的是ES6語法糖:function(state = {}) { ... }是默認值的速記符號( state默認爲{}),(a) => bfunction(a) { return b }的簡寫符號。如果你把它們放在一起,你會得到(state = {}) => state