functiondebounce(fn,delay =200){if(typeof fn !=='function'){thrownewTypeError('fn is not a function')}let lastFn =null;returnfunction(...args){if(lastFn)clearTimeout(lastFn)
lastFn =setTimeout(()=>{
fn.call(this,...args)},delay)}}functionclickHandle(){
console.log('test')}
window.onscroll =debounce(clickHandle,500)
2.实现接节流
functionthrottle(fn,delay =200){if(typeof fn !=='function'){thrownewTypeError('fn is not a function')}let flag =null;returnfunction(...args){if(!flag){setTimeout(()=>{
flag =true
fn.call(this,...args)},delay)}}}functionclickHandle(){
console.log('test')}
window.onscroll =debounce(clickHandle,500)