Javascript 记忆化

标签 javascript memoization

有人可以提供一个仅使用 Javascript 就能记住的简单函数吗? google 的时候在网上找了几篇文章,但是看的不多。我找到的最好的文章是这篇文章:

http://alivedise.github.io/blog/2012/12/22/javascript-memorization/

我明白缓存是什么,但是这个例子对我来说太复杂了。我希望这里的任何人都可以提供一个简单的函数和调用,以便我可以接受它并开始更深入地理解它。

谢谢

最佳答案

我认为您正在寻找的是内存

来自 Wikipedia :

memoization is an optimization technique used primarily to speed up computer programs by having function calls avoid repeating the calculation of results for previously processed inputs

有篇不错的文章here和另一个 SO 问题 here .

您通常会使用内存来减少重复计算始终相同的结果的成本。任何性能改进都以为缓存结果分配内存为代价。

代码中的一个简单示例:

var cachedResult;
function doHeavyCalculation()
{
    if (typeof(cachedResult) !== 'undefined')
        return cachedResult;

    // no cached result available. calculate it, and store it.
    cachedResult = /* do your computation */;
    return cachedResult;
}

有支持内存任何函数的 JavaScript 框架,它们基本上通过装饰函数以可重用的方式为您提供此样板代码。

关于Javascript 记忆化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20103739/

相关文章:

algorithm - 动态规划算法的时间和空间复杂度

java - 内存游戏算法的递归函数?

php - 在 PHP 中缓存函数结果

javascript - Promise 与 _.each 异步调用

java - 动态规划解法讲解

javascript - 具有某些条件的名字的正则表达式

javascript - 插件中的 JavaScript 队列未在页面源上注册

python - 内存python

javascript - 带有 Javascript 的 HTML5 视频媒体片段

javascript - 如何向多个 DIV 按钮添加更多 Javascript 按钮