首页 > 其他 > 详细

封装一个节流器函数 通过传递不同的参数,可以实现两个功能:开启节流器 和 关闭节流器

时间:2020-06-02 00:11:41      阅读:45      评论:0      收藏:0      [点我收藏+]
/**
 * 封装一个节流器函数 通过传递不同的参数,可以实现两个功能:开启节流器 和 关闭节流器
 * 1. 开启节流器时参数
 *      @arg1 指定要节流的回调函数
 *      @arg2 指定配置对象options,配置对象中配置属性:
 *            - context  改变this的指向;节流函数执行的上下问环境
 *            - args 一个数组,指定向节流函数传递的参数
 *            - duration 延时器执行所需要的时间
 * 2. 关闭节流器
 *      @arg1 指定一个标识,如果为 false,则代表关闭节流器
 *      @arg2 指定要节流的回调函数
 */
function throttle(arg1,arg2){
    if(typeof(arg1) == ‘function‘){//开启节流器
        // console.log("开启节流器")

        //配置相关信息
        var options = arg2 || {
            context:window,
            args:[],
            duration:1000
        };

        //清除指定节流函数延时器
        clearTimeout(arg1.timer);

        //给节流函数定义一个延时器
        arg1.timer = setTimeout(function(){//给一个匿名的回调,在这个匿名回调函数中去执行 节流函数 并 传递参数
            arg1.apply(options.context,options.args);
        },options.duration);
    }else if(arg1 == false){//关闭节流器
        // console.log("关闭节流器")

        //清除指定节流函数的延时器
        clearTimeout(arg2.timer);
    }
}

 

封装一个节流器函数 通过传递不同的参数,可以实现两个功能:开启节流器 和 关闭节流器

原文:https://www.cnblogs.com/yess/p/13028489.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!