高阶节流:`闭包` + `return数据` + `传参`

2021-06-10  本文已影响0人  春风本是人间客
<script>
  var resultValue = "1";
  function throttle(fn) {
    console.log(arguments);
    let params = Array.from(arguments);
    params.shift();
    let res = arguments[arguments.length - 1];
    params.pop();
    let canRun = true;
    return () => {
      if (!canRun) return;
      canRun = false;
      setTimeout(() => {
        canRun = true;
        window[res] = fn.apply(this, params);
        console.log(resultValue);
        return res;
      }, 2000);
    };
  }
  function sayHi(value1, value2) {
    console.log(value1, value2);
    return "result=======";
  }

  var x = throttle(sayHi, 1, 2, "resultValue");
  setInterval(() => {
    x();
  }, 500);
</script>
上一篇 下一篇

猜你喜欢

热点阅读