オブジェクト分割代入でも関数をデフォルト値にできる

マーク部分がデフォルト値となる関数。

function 出会う({話す = () => console.log('こんにちは'), 名前}) {
  console.log(名前 + 'が現れた')
  話す()
}

const 猫 = {
  名前: 'ミケ',
  話す() {
    console.log('ニャオ')
  }
}

出会う(猫)
// ミケが現れた
// ニャオ

出会う({名前:'アリス'})
// アリスが現れた
// こんにちは