var throttle = function(fn, interval) { //fn为要执行的函数,interval为延迟时间 var _self = fn, //保存需要被延迟执行的函数引用 timer, //定时器 firstTime = true; //是否第一次调用 return function() { //返回一个函数,形成闭包,持久化变量 var args = arguments, //缓存变量 _me = this; if(firstTime) { //如果是第一次调用,不用延迟执行 _self.apply(_me, args); return firstTime = false; } if(timer) { //如果定时器还在,说明上一次延迟执行还没有完成 return false; } timer = setTimeout(function() { //延迟一段时间执行 clearTimeout(timer); timer = null; _self.apply(_me, args); }, interval || 500); };};//使用window.onresize = throttle(function() { //你要执行的代码}, 500);在网上看到的一个节流函数。有点不太懂,上面的var args = arguments, //缓存变量这里的arguments指的是什么。
添加回答
举报
0/150
提交
取消