【问题标题】:What do the braces mean in the following function definition? [duplicate]以下函数定义中的大括号是什么意思? [复制]
【发布时间】:2015-11-04 20:05:58
【问题描述】:

以下函数定义中的大括号是什么意思?

(state, { copy }) => state.push(createItem(copy));

【问题讨论】:

  • ..确定这是有效的代码吗?
  • @Reeno 这个问题是关于函数调用中的花括号,而不是定义中的。

标签: javascript ecmascript-6


【解决方案1】:

在 ES6 中,这称为Object Destructuring

在那个特定方面,这意味着我可以将一个对象作为函数的参数传入,并将它转换为我可以在该函数中访问的变量,例如:

function f(param1, { param2, param3 }) {
  console.log(param2, param3)
}
f("one", {
  param2: "A",
  param3: "B"
});

Babel REPL Example

优点是不用调用:

f("one", myObject.one, myObject.two);

我可以简单地调用:

f("one", myObject);

onetwo 参数将为我相应地映射。

【讨论】:

  • @zerkms 很好,我将删除该声明
猜你喜欢
  • 1970-01-01
  • 2013-05-28
  • 1970-01-01
  • 2016-12-15
  • 1970-01-01
  • 2011-01-07
  • 1970-01-01
  • 2022-11-30
  • 2014-10-24
相关资源
最近更新 更多