javascript - ES6 中箭头函数内的参数列表周围的括号是什么意思?

标签 javascript ecmascript-6

<分区>

来自doc :

enter image description here

这是一个简单的 ES6 箭头函数,但我找不到用方括号(又名:< em>({ onClick, completed, text }) ) - 没有文档提及 - 没有例子

const Todo = ({ onClick, completed, text }) => ( <---- here
  <li
    onClick={onClick}
    style={{
      textDecoration: completed ? 'line-through' : 'none'
    }}
  >
    {text}
  </li>
)

export default Todo

我猜这看起来像我们导入时的样子:

import  { PropTypes, Component } from 'react'

干杯

最佳答案

这叫做 object destructuring .

你正在看一段 React 代码,其中 props 是一个对象:

const props = { onClick: function() {}, completed: false, text: 'some string' };

要直接使用 props 对象属性,我们使用解构将它们分配给单独的变量:

const Todo = ({ onClick, completed, text }) => ( <---- here
  <li
    onClick={onClick} // <-- the onClick variable
    style={{
      textDecoration: completed ? 'line-through' : 'none'  // <-- the completed variable
    }}
  >
    {text}  // <-- the text variable
  </li>
)

如果我们不使用解构,我们将不得不使用点符号从 props 对象中获取属性:

const Todo = (props) => ( <---- here
  <li
    onClick={props.onClick} // <-- the onClick property
    style={{
      textDecoration: props.completed ? 'line-through' : 'none'  // <-- the completed property
    }}
  >
    {props.text}  // <-- the text property
  </li>
)

解构和导入具有非常接近的语法,但它们做的事情并不完全相同 - 您可以在此 answer 中阅读更多相关信息.

关于javascript - ES6 中箭头函数内的参数列表周围的括号是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41325225/

相关文章:

javascript - 在 NodeJs 简单模拟中捕获查询字符串中的参数

javascript - 参数之前或之后的流类型问号?

javascript - 如何将 Immutable JS 与类型化的 ES6 类一起使用?

javascript - 初级程序员-是否以ES5或ES6开头

javascript - 如何在 Javascript 中调用同一个类中的另一个方法

javascript - 使用解构 JavaScript 从数组对象中获取数组值

javascript - jQuery Deferred 在失败处理程序后继续解析

javascript - 使用 JavaScript 获取区间内的整数

javascript - TFS 是否应该在源代码管理中存储通过 NuGet 安装的 JavaScript 包?

javascript - 如何检测使用 JQuery(或 Javascript)选择的隐式 HTML 选项