js节流

节流(throttle) 第一步

  1. 实现一个函数,返回一个函数func
  2. 参数,第一个参数是一个函数,第二个参数是一个数字time
  3. 当频繁调用返回的函数func时,有规律地time时间执行一次
function throttle(func, timeout) { let timer; return function () { if (timer) { return; } // 每次调用都指定timeout后再执行 timer = setTimeout(() => { timer = null; func(); }, timeout); }; }

第二步
  1. 函数可以传参数
  2. 在func调用时要使用function ()的上下文this
function throttle(func, timeout) { let timer; return function () { if (timer) { return; } // 每次调用都指定timeout后再执行 timer = setTimeout(() => { timer = null; func.apply(this, Array.from(arguments)); }, timeout); }; }

    推荐阅读