为了账号安全,请及时绑定邮箱和手机立即绑定

今天看见一个代码,想跟大家讨论一下

今天看见一个代码,想跟大家讨论一下

千巷猫影 2018-12-21 19:14:19
var throttle = function (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 () {    console.log('1');}, 500)这段代码中判断定时器还有没执行完毕的那一句,我觉得没有必要,因为定时器里面的内容和主js执行是同一个线程,如果定时器没有执行完毕,那么其他的内容也不会执行,所以如果定时器没有执行完成,根本不会进入到下一次的判断中来,有没有大神告诉我是不是这样
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 322 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信