javascript 去抖

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 去抖相关的知识,希望对你有一定的参考价值。

{
    let box = document.querySelector("body");
    box.style.height = "1000px";

    function handle(e)
    {
        console.log("e",e.x,e.y);
        box.innerHTML = `${e.x},${e.y}`;
    }
    box.addEventListener('mousemove',debounce(handle,1000));
    function debounce(fn,wait)
    {
        let timeId = null;
        return function()
        {
            if(timeId!=null)
               clearTimeout(timeId);
            let args = arguments;
            console.log(args);
            //或者写成箭头函数,但注意箭头函数的arguments指向的是外层函数的arguments,这时候就不用赋值args了。
             timeId = setTimeout(()=>{fn.apply(this,arguments)},wait);
            //timeId = setTimeout(function(){fn.apply(this,args);},wait)
            //立即执行
            //timeId = setTimeout(fn.apply(this,arguments),wait);   
        }
    }
}

以上是关于javascript 去抖的主要内容,如果未能解决你的问题,请参考以下文章

javascript 去抖功能

javascript 去抖功能

javascript 功能去抖

javascript 去抖

javascript 去抖函数

javascript 去抖