实现防抖函数和节流函数

1.实现防抖函数(debounce)

连续触发在最后一次执行方法,场景:输入框匹配

let debounce = (fn,time = 1000) => {
    let timeLock = null
    return function (...args){
        clearTimeout(timeLock)
        timeLock = setTimeout(()=>{
            fn(...args)
        },time)
    }
}

2.实现节流函数(throttle)

在一定时间内只触发一次,场景:长列表滚动节流

let throttle = (fn,time = 1000) => {
    let flag = true
    return function (...args){
        if(flag){
            flag = false;
            setTimeout(()=>{
                flag = true
                fn(...args)
            },time)
        }
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容