コールバックを匿名関数にする

function 関数(コールバック) {
  コールバック()
}

function 名前ありコールバック() {
  console.log('名前あり')
}

// 事前に作った名前あり関数、または変数に代入した関数を渡す。
関数(名前ありコールバック)
// これなら再利用可。
関数(名前ありコールバック)

// 再利用しないなら、実引数のその場で定義した匿名関数を渡す。
// function式による匿名関数
関数(function() {
  console.log('function式')
})

// アロー関数
関数(() => {
  console.log('アロー関数')
})

コールバックをクラスにするのは、あまり見かけない

function 関数(コールバッククラス, コンストラクタ引数) {
  let インスタンス = new コールバッククラス(コンストラクタ引数)
  console.log(インスタンス.名前)
}

関数(
  // 第1引数: class式による匿名クラス
  class {
    constructor(名前) {
      this.名前 = 名前
    }
  },
  // 第2引数
  'アリス'
)
// アリス