2016-02-20 98 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