在阅读了几次之后,我仍然不明白这个来自Stoyan Stefanov 的“JavaScript 模式”第 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
,否则我看不到任何保留。
结果存储在哪里?
PS:我已经阅读了 John Resig 的 Learning Advanced JavaScript 中的 Caching the return results of a function,这是一个类似的练习,我得到了那个。但是这里的代码不同。