手写防抖节流函数

function deBounce(fn, delay) {
        let timer = null; //这里巧妙地运用了闭包的特性,使得timer不仅不会被销毁,并且避免了每次都初始化一遍
        return function (e) {
          if (timer) {
            clearTimeout(timer); //若之前的定时器还在,则清空之前的定时器
          }
          timer = setTimeout(() => {
            fn.call(this, e); //调用函数也用了闭包,并且使得this指向input,并且接收事件对象作为参数
          }, delay); //运用闭包,添加一个新的定时器,时间可自定,
        };
      }
上一篇:AtCoder Grand Contest 038 题解


下一篇:leetcode 算法题160 (简单038) 相交链表