@panhonhang
2019-12-13T20:25:16.000000Z
字数 398
阅读 431
手撕代码
函数节流所做的工作就是每隔一段时间去执行一次原本需要无时不刻地在执行的函数(比如缩放,滚动等)
let throttle = function(fn,timer){
let flag = true;
return function(){
if(!flag) return;
flag = false;
settimeout(()=>{
fn();
flag = true;
},timer)
}
}
函数防抖所做的工作是优化高频率执行js代码的一种手段,在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。
let debounce = function (fn, delay) {
var flag; // 维护一个 flag
return function () {
if (flag) {
clearTimeout(flag);
}
flag = setTimeout(function () {
fn();
}, delay);
};
}