debounce and throtlle

debounce

javascript 复制代码
      // 核心:单位时间内触发>1 则只执行最后一次。
      //excutioner 可以认为是执行器。执行器存在则清空,再赋值新的执行器。
      function debounce(fn, delay = 500) {
        let excutioner = null;
        return function () {
          let context = this;
          let args = arguments;

          if (excutioner) {
            clearTimeout(excutioner);
          }
          excutioner = setTimeout(() => {
            fn.apply(context, args);
          }, delay);

          console.log("excutioner", excutioner);
        };
      }

      const clickFun = params => {
        console.log("this is click Fun", params);
      };

      const butt = document.getElementById("clickBut");
      //传参的2种方式
      butt.addEventListener(
        "click",
        debounce(() => clickFun(100), 1000)
      );
      // butt.addEventListener("click", debounce(clickFun, 1000).bind(this, 100));

throtlle

javascript 复制代码
      // 单位时间内触发>1次 只执行第一次
      function throttle(fn, delay = 1000) {
        let excutioner = null;
        return function () {
          const context = this;
          const args = arguments;
          if (!excutioner) {
            excutioner = setTimeout(() => {
              fn.apply(context, args);
              excutioner = null;
            }, deplay);
          }
        };
      }
      const butt2 = document.getElementById("clickBut2");
      //传参
      butt.addEventListener(
        "click",
        throttle(() => clickFun(100), 1000)
      );

注: //在 JavaScript 中,arguments 是一个类数组对象,它表示传递给一个函数的参数集合。通过使用 arguments

对象,你可以在函数内部访问到传递给该函数的所有参数,即使你在函数声明中没有明确指定这些参数。

相关推荐
如果超人不会飞1 分钟前
TinyVue NavMenu导航菜单组件使用指南
前端·vue.js
_Evan_Yao2 分钟前
面向对象实战:用 Java/Python 设计一个简单的“怪物战斗”小游戏
java·开发语言
Jason_chen3 分钟前
Linux 3.0 串口机制深度解析:传统8250驱动与基础RS-232/485支持
linux·前端
c++之路5 分钟前
CMake 系列教程(一):CMake 基础知识
c语言·开发语言·c++
AI行业学习5 分钟前
CC‑Switch v3.16.1-下载、配置、安装(2026‑06‑01 最新官方版)
开发语言·人工智能·windows·python
TPBoreas6 分钟前
前端面试问题打靶
前端
赵庆明老师7 分钟前
JS检查提交的文件是否合规
开发语言·前端·javascript
Irissgwe9 分钟前
C++ STL bitset 和位图详解
开发语言·c++·stl·位图·bitset
我还记得那天10 分钟前
C语言随机数生成机制与猜数字游戏实现
c语言·开发语言·游戏
禅思院13 分钟前
前端请求取消与调度完全指南:从 AbortController 到企业级优先级架构
前端·设计模式·前端框架