首页 > 其他分享 >闭包节流和防抖

闭包节流和防抖

时间:2022-08-18 20:12:01浏览次数:49  
标签:闭包 function 防抖 节流 timer delay null fn

 <style>
      div {
        width: 200px;
        height: 200px;
        background-color: skyblue;
        margin: 50px auto;
      }
    </style>

<div></div>


节流:

<script>
      function throttle(fn,delay){
        var timer = null
        return function(){
          if(timer) return
          timer = setTimeout(function(){
            fn()
            timer = null
          },delay)
        }
      }

      let fn = throttle(function(){
        console.log("已经走了")
      },200)
      document.querySelector("div").onmouseleave = function(){
        fn()
      }
    </script>

防抖:

<script>
      function debounce(fn, delay) {
        var timer = null;
        return function () {
          if (timer) clearTimeout(timer);
          timer = setTimeout(fn, delay);
        };
      }

      let fn = debounce(function () {
        console.log("移进去了");
      }, 500);
      document.querySelector("div").onmouseenter = function () {
        fn();
      };
    </script>

标签:闭包,function,防抖,节流,timer,delay,null,fn
From: https://www.cnblogs.com/sumu80/p/16599944.html

相关文章

  • js防抖和节流实现
    1、防抖(debounce):触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间举例:就好像在百度搜索时,每次输入之后都有联想词弹出,这个控制联想......
  • 14、函数对象和闭包
    14、函数对象和闭包  目录:一函数对象1.1函数可以被引用1.2函数可以作为容器类型的元素1.3函数可以作为参数传入另外一个函数1.4函数的返回值......
  • 两种方法实现点击列表的时候分别打印索引号(普通方法/闭包)
    首先来简述什么是闭包假设上面三行代码在一个立即执行函数中(为简明起见,我就不写立即执行函数了,影响读者理解)。三行代码中,有一个局部变量local,有一个函数foo,foo里......
  • element下拉框远程搜索debounce防抖控制
    一、需求:下拉框支持远程搜索,根据用户输入字符,调接口获取数据渲染到下拉列表上,供用户选择。二、为什么要做防抖控制?在做远程搜索时,如果每输入1个字就调用1次接口,就会频繁......
  • 闭包
    在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。闭包具有提高代码复用性的作用。defline_c......
  • 闭包和闭包的应用
    闭包//闭包:函数嵌套函数,内部函数就是闭包    //正常情况下,函数执行完成,内部变量就会被销毁(释放内存空间)    //闭包:内部函数没有执行完成,外部函数变量......
  • js | 防抖&&节流
    正常:事件触发非常频繁,每一次触发,回调函数都会执行,如果时间很短,回调函数中有计算,有可能会出现浏览器卡顿防抖:前面所有的触发都会取消,最后一次的执行在规定的时间......
  • 09闭包与作用域
    1<!doctypehtml>2<htmllang="en">3<head>4<metacharset="UTF-8">5<metaname="viewport"6content="width=device-width,us......