美文网首页
js—记忆函数 memoize

js—记忆函数 memoize

作者: 一名有马甲线的程序媛 | 来源:发表于2021-09-14 20:38 被阅读0次

应用场景:
在切换select下拉框进行接口请求搜索的时候,如果频繁切换会给后台造成很大的压力,所以需要前端用记忆函数来存储已经搜索过的项目。
例如,有a b c d四个选项,已经以a为条件进行数据请求,再次切换到a可以不必再向后台发送重复请求,直接从前端缓存中读取更为方便,即有了记忆函数。

    // 示例函数
    function demoFun (x) {
      console.log(x);
      return x*2021;
    }

    // 记忆函数
    function memoize (f) {
      let obj = {};
      return function () {
        let key = JSON.stringify(arguments); // arguments伪数组
        obj[key] = obj[key] || f.apply(f, arguments);
        return obj[key];
      }
    }
    let temp = memoize(demoFun);
    console.log(temp(1));
    console.log(temp(1));
    console.log(temp(2));

    // 打印结果如下:
    // 1
    // 2021
    // 2021
    // 2
    // 4042

由此可见,temp(1)已经请求过一次了,再次触发不会再走到demoFun中,可直接拿到缓存中的值。

如果本文对你有所帮助,感谢点一颗小心心,您的支持是我继续创作的动力!
最后:写作不易,如要转裁,请标明转载出处。

相关文章

  • js—记忆函数 memoize

    应用场景:在切换select下拉框进行接口请求搜索的时候,如果频繁切换会给后台造成很大的压力,所以需要前端用记忆函...

  • 手写lodash中flowRight,curry,memoize

    手写flowRight 手写curry函数 手写memoize函数

  • 提高JavaScript程序性能的方法

    编写带有记忆功能的函数//函数memoize()需要传人一个函数作为输入参数,返回相同的函数但增加了储存功能fun...

  • 纯记忆函数

    纯记忆函数 使用闭包解决重复计算的性能开销 1.斐波纳列数列 func Memoize(function memo...

  • react 计算优化

    memoizationimport memoize from 'memoize-one';getFullName ...

  • JavaScript:memoize全局函数

    基本概念 简单讲就是把函数的计算结果缓存起来。这个对于计算量大的递归调用,可以加快速度。比如阶乘,斐波那契数组数组...

  • JavaScript 05 函数

    js函数的概念和作用,js函数的定义,js函数的调用,js事件驱动的概念,js函数的实参和形参,js的作用域,js...

  • lodash的memoize 和 memoize-one有啥区别

    lodash的memoize 默认的情况下,memoize 只会根据形参的的一个参数进行缓存 再次相同参数 这看起...

  • js 深入

    * js语法* js的动态函数和匿名函数* js动态函数Functionnew Function();* 匿名函数...

  • Memoize算法

    在计算机领域,记忆(Memoization)是主要用于加速程序的一种优化技术,它使得函数避免重复演算已被处理过得输...

网友评论

      本文标题:js—记忆函数 memoize

      本文链接:https://www.haomeiwen.com/subject/hoicgltx.html