Javascript ES6()=>()和()=> {}之间的区别

时间:2016-11-28 02:25:07

标签: javascript reactjs ecmascript-6 react-jsx

我在学习React

时看到了类似的代码
const LinkCell = ({rowIndex, data, col, ...props}) => (
  <Cell {...props}>
    <a href="#">{data.getObjectAt(rowIndex)[col]}</a>
  </Cell>
);

另外,到目前为止我认为在ES6中功能简写是

let sum = (a, b)=>{
   return a + b;
}

第一个与第二个有何不同?

2 个答案:

答案 0 :(得分:2)

() => ()() => { doSomething() OR return; }的单行速记。

无论如何,如果你需要更多操作并需要多个行语句,你应该使用() => {}语法,否则你可以使用简写语法() => ()

以下内容也被视为一行声明。但要使用() => ()语法,您需要在没有return语句

的情况下重写它
// The below one line statement can be rewritten as below
if (true ) return something;

// rewritten of above one
() => ( a > b ? a : b)

// one line statement
if (true ) invoke();  // This will go like, () => (a ? a.invoke() : b.invoke())

// one line statement
for(var i in results) doSomething();

//And your jsx statement which can be tread as one liner
<Cell {...props}>
    <a href="#">{data.getObjectAt(rowIndex)[col]}</a>
  </Cell>

答案 1 :(得分:1)

with()=&gt; ()语法想象一下是否存在隐式返回语句,例如()=&gt; {return()}