javascript - 这个 JavaScript 函数如何缓存它的结果?

标签 javascript caching hash memoization

看了好几遍,还是不明白Stoyan Stefanov's "JavaScript Patterns"第76页的这个例子代码是怎么写的?作品。我还不是忍者。但对我来说,它看起来像是只存储了一个空对象:

var myFunc = function (param) {
  if (!myFunc.cache[param]) {
    var result = {};
    // ... expensive operation ...
    myFunc.cache[param] = result;
  } 
  return myFunc.cache[param];
};
// cache storage
myFunc.cache = {};

除非那个看不见的“昂贵的操作”正在存储回 result,否则我看不到任何东西被保留。

结果存储在哪里?

P.S.:我读过Caching the return results of a function from John Resig's Learning Advanced JavaScript ,这是一个类似的练习,我得到了那个。但是这里的代码不同。

最佳答案

您已经回答了您自己的问题——作者假设昂贵的操作会将其结果存储在 result 中。

如您所述,否则缓存将只包含空对象。

关于javascript - 这个 JavaScript 函数如何缓存它的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6090391/

相关文章:

javascript - 每个循环都有 express js 的 Node

火狐缓存图片下载

javascript - 如何连续制作 2 个音频元素,但只发出 1 个音频请求?

haskell - 如何使用 yesod 按请求缓存?

security - 非常简单的密码生成方案;这样安全吗?

javascript - 有没有办法从服务器更新 iOS 应用程序中的 javascript 文件?

javascript - 如何更改显示选项的 HTML5 数据列表背景颜色

c# - 如何使用 C# 密码学检索签名哈希算法友好名称?

c++ - 如何使数组成为 C++ 中函数的参数?

javascript - 用JavaScript创建功能对象的优点/缺点是什么?