/** * 封装一个节流器函数 通过传递不同的参数,可以实现两个功能:开启节流器 和 关闭节流器 * 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