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