// 实现防抖函数 function debounce(fn, delay, immediate = false) {// 实现let timer=null;let result=null;return function(...args){if(timer){clearTimeout(timer);timer=null;}if(immediate){const callnow=!timer;timer=setTimeout(()=>{timer=null;},delay);if(callnow){result=fn.apply(this,args);}}else{timer=setTimeout(()=>{result=fn.apply(this,args);},delay)}return result;} }
function throttle(fn, limit) {let timer = null;let lastTime = 0;return function(...args) {const now = Date.now();const remaining = limit - (now - lastTime);// 清除之前的定时器if (timer) {clearTimeout(timer);timer = null;}// 应该立即执行if (remaining <= 0) {fn.apply(this, args);lastTime = now;} // 设置定时器延迟执行else {timer = setTimeout(() => {fn.apply(this, args);lastTime = Date.now();timer = null;}, remaining);}}; }