js节流函数问题

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指的是什么。

小怪兽爱吃肉
浏览 577回答 1
1回答

翻阅古今

下面有个调用arg啊_self.apply(_me, args); //这里如果用arguments就是匿名函数的了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript