Function Destructuring

함수의 인자를 넘겨줄 때에도 destructuring이 유용하다.

function setAccountOption(age, gender, notification, public, admin) {
  ...
}

...

setAccountOption(20, "Male", true, true, false)

다음과 같은 경우 true, true, true를 보고 어떤 값이 들어가는지 확인하기 힘들다.

function setAccountOption(options) {
  if (!setting.notification) {
    ...
  }
  ...
}

...

setAccountOption({
  age: 20,
  gender:"Male",
  notification: true,
  public: true,
  admin: false
})

이를 개선해 object 형태로 넘겨주게 되면 함수 안에서 undefined여부를 확인해줘야 하는 번거로움이 생긴다.

// es6 이후
function setAccountOption({age, gender, notification, public, admin = false}) {
  console.log(notification)
  ...
}

...

setAccountOption({
  age: 20,
  gender:"Male",
  notification: true,
  public: true,
  admin: false
})

이를 destructuring을 통해 간단명료하게 바꿀 수 있다.