手撸函数防抖与节流

//防抖

const inputHandler = function (e) {

    console.log(e.target);

    console.log(e.target.value);

}

ip.addEventListener('input', mydebounce(inputHandler, 1000))

function mydebounce(fn, delay) {

    let timer = null

    return function (...args) {

        if (timer) {

            clearTimeout(timer)

        }

        timer = setTimeout(() => {

            fn.apply(null, args)

            timer = null

        }, delay)

    }

}

// 节流

const clickHandler=function(e){

    console.log('hello');

}

btn.addEventListener('click',mythrottle(clickHandler,1000))

function mythrottle(fn,delay){

    let timer=null

    return function(...args){

        if(!timer){

            fn.apply(null,args)

            timer=setTimeout(()=>{

                timer=null

            },delay)

        }

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容