欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JS记忆函数

程序员文章站 2022-04-03 23:01:17
...

对于一种纯函数(即只要是同一种输入就能得到唯一一个相同的结果的函数),我们可以设置记忆函数来节约资源,当输入的参数不变时,我们就可以采用缓存的结果,当输入参数有所变化时才重新计算。一种记忆函数如下所示:

function memorize(fn) {
  var cachedArg;
  var cachedResult;
  return function(arg) {
    if (cachedArg === arg) {
      return cachedResult;
    }
    cachedArg = arg;
    cachedResult = fn(arg);
    return cachedResult;
  };
}

思想:通过闭包来缓存计算参数以及结果,通过参数的变化与否来决定是否重新计算。
使用方式:将要记忆的纯函数作为参数传入memorize中新建一个新的函数(即为记忆版的纯函数),然后在新的函数中传入原始函数需要计算的参数即可。

参考: https://github.com/react-guide/react-basic

相关标签: 记忆函数 闭包