像你所说的,如果将let previous = 0 声明放到return function {...} 的函数体内部(姑且称这个函数为func),那么每次触发func都会执行let previous = 0; 这样 if (now - previous > wait) 这个条件永远都是true, 无法达到节流的效果。而将let previous = 0放到func外 ;只会在第一次调用throttle时声明previous=0,然后每次调用func内部去改变这个previous
函数防抖和节流在前端开发的过程中,我们经常会需要绑定一些持续触发的事件,如 resize、scroll、mousemove 等等,但有些时候我们并不希望在事件持续触发的过程中那么频繁地去执...