个人编程资料整理整理

我的博客

Javascript的防抖/限流

1、防抖

function lazyFunction(fn, timeout){
    var timer = 0;
    return function(){
        if(timer) window.clearTimeout(timer);
        var args = arguments, that = this;
        timer = window.setTimeout(function(){
            fn.apply(that, args)
        }, timeout);
    };
}
var func = lazyFunction(function(name){
        console.log(name);
    }, 500);
 
    func('test1');
    func('test2');
    func('test3');
    func('test4');
    //每调用一次,都重置timer,设置新的timeout,在timeout时间内,连续执行,只执行最后一个超过timeout的方法
    //这里只有func('test4');会被执行正常输出结果

JavaScript2019-11-29

文章分类

  • 最新评论
  •  
  •