中等
技术面试0 次浏览

请说明如何实现一个简单的 JavaScript 函数防抖。

前端工程师
JavaScript函数防抖

答题要点

函数防抖是一种在前端开发中常用的优化技术,它可以避免在短时间内多次触发某个函数而导致的性能问题。其基本原理是在一定时间内,只有最后一次调用函数才会被执行。以下是一个简单的函数防抖实现: javascript function debounce(func, delay) { let timer = null; return function() { const context = this; const args = arguments; if (timer) { clearTimeout(timer); } timer = setTimeout(() => { func.apply(context, args); }, delay); }; } 在上述代码中,debounce 函数接受两个参数:需要进行防抖处理的函数 func 和延迟时间 delay。它返回一个新的函数,在这个新函数中,每次调用时会清除之前的定时器,然后重新设置一个新的定时器。只有当延迟时间内没有再次调用这个新函数时,定时器到期后才会执行原始的函数 func。使用时,可以将需要防抖的函数作为参数传入 debounce 函数,得到一个经过防抖处理的新函数。