この解答例はChatGPTによって生成されています,正しいかは自己判断で。

BFE.devでのAI解答例 - JavaScript コーディング問題
6. debounce()を実装する

以下がJavaScriptのdebounce()の実装例です。

function debounce(func, wait) {
  let timeoutId;

  return function(...args) {
    const context = this;

    clearTimeout(timeoutId);

    timeoutId = setTimeout(() => {
      func.apply(context, args);
    }, wait);
  };
}

このdebounce()関数は、渡されたfunc関数を指定されたwait時間だけ長引かせることができます。

具体的には、指定された時間未満にfuncが実行された場合は、タイマーを解除して、新しいタイマーを設定します。時間を超えた場合は、指定された関数を実行します。このようにすることで、パフォーマンスの問題を回避することができます。