看了好几遍,还是不明白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/