围绕参数括号 - 为什么?

Eth*_*ark 4 javascript ecmascript-6 reactjs redux

我在教程中遇到了这个问题:

const Todos = ({todos}) => (
  <div>
    <h1>Todos</h1>
    {todos.map(todo => <p key={todo}>{todo}</p>)}
  </div>
)
Run Code Online (Sandbox Code Playgroud)

为什么参数周围有括号?如果我自己写的话,第一行看起来像这样:

const Todos = (todos) => (...
Run Code Online (Sandbox Code Playgroud)

这是一些古怪的新ES6语法,我根本找不到记录?

Mar*_*ulz 8

这是参数对象解构的语法,它是作为ECMAScript 2015的一部分引入的.该Todos函数没有定义一个名为的参数todos,而是访问todos传入的对象的属性(并且立即被解构).

它大致相当于以下版本:

const Todos = (_param) => {
  let todos = _param.todos;
  return (
    <div>
      <h1>Todos</h1>
      {todos.map(todo => <p key={todo}>{todo}</p>)}
    </div>
  );
};
Run Code Online (Sandbox Code Playgroud)

退房解构和参数处理有关解构更多信息.