Confuso sobre a desestruturação dos parâmetros de função
No exemplo a seguir, por que a função whois () tem acesso a displayName2 e name1?
function whois({displayName: displayName2, fullName: {firstName: name1}}){
console.log(`${displayName2} is ${name1}`)
}
let user = {
displayName: "jdoe",
fullName: {
firstName: "John",
lastName: "Doe"
}
}
whois(user) // "jdoe is John"
Para quem não é treinado, parece que deveria ter acesso a displayName e fullName.firstName. A desestruturação se parece com JSON ao contrário.
O que está acontecendo sob o capô?