函数参数列表内的大括号在 es6 中有什么作用?

2022-08-30 02:09:27

我一直在我正在处理的代码库中看到如下所示的函数:

const func = ({ param1, param2 }) => {
  //do stuff
}

这到底是做什么的?我很难在谷歌上找到它,因为我甚至不确定这叫什么,或者如何在谷歌搜索中描述它。


答案 1

它是解构的,但包含在参数中。没有解构的等效项是:

const func = o => {
    var param1 = o.param1;
    var param2 = o.param2;
    //do stuff
}

答案 2

这是将对象作为属性传递。

它基本上是简写

let param1 = someObject.param1
let param2 = someObject.param2

在没有参数的情况下使用这种技术的另一种方法是,让我们考虑一下某些Object确实包含这些属性。

let {param1, param2} = someObject;