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

Posted 春风自是人间客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高阶节流:`闭包` + `return数据` + `传参`相关的知识,希望对你有一定的参考价值。

<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>

以上是关于高阶节流:`闭包` + `return数据` + `传参`的主要内容,如果未能解决你的问题,请参考以下文章

高阶函数 - 函数节流

Day04 Go语言函数:值传递匿名函数高阶函数闭包和defer语句

手写防抖、节流 hook(ts版)

高阶函数闭包

闭包与防抖节流

关于闭包 vue3 防抖 节流