中等
技术面试0 次浏览

请实现一个简单的节流函数。

前端工程师
JavaScript节流函数

答题要点

节流函数是一种限制函数调用频率的技术,常用于处理高频事件,如滚动、窗口大小改变等。以下是一个简单的节流函数的实现: javascript function throttle(func, delay) { let timer = null; return function() { if (!timer) { func.apply(this, arguments); timer = setTimeout(() => { timer = null; }, delay); } }; } 在这个实现中,`throttle` 函数接受两个参数:`func` 是要节流的函数,`delay` 是节流的时间间隔。函数内部使用一个 `timer` 变量来记录定时器。当第一次调用返回的函数时,`timer` 为 `null`,会立即执行 `func` 函数,并启动一个定时器。在定时器的时间间隔内,再次调用返回的函数时,由于 `timer` 不为 `null`,不会执行 `func` 函数。只有当定时器到期,`timer` 被重置为 `null` 后,才能再次执行 `func` 函数。这样就实现了函数的节流,限制了函数的调用频率。