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が実行された場合は、タイマーを解除して、新しいタイマーを設定します。時間を超えた場合は、指定された関数を実行します。このようにすることで、パフォーマンスの問題を回避することができます。