O que as listas de parâmetros de function dentro das chaves fazem no es6?

Continuo vendo funções semelhantes a essa em uma base de código em que estou trabalhando:

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

O que exatamente isso está fazendo? Eu estou tendo dificuldade em encontrá-lo no google, porque eu não tenho certeza do que isso é chamado, ou como descrevê-lo em uma pesquisa no google.

É desestruturante , mas contido dentro dos parâmetros. O equivalente sem a desestruturação seria:

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

Isso está passando um object como uma propriedade.

É basicamente uma abreviação para const param1 = someObject.param1 const param2 = someObject.param2

Outra maneira de usar essa técnica sem além de parâmetros é a seguinte, vamos considerar, por um segundo, que someObject contém essas propriedades. const {param1, param2} = someObject;