多次阅读后,我仍不明白Stoyan Stefanov's "JavaScript Patterns"第76页的示例代码是如何工作的。我不是忍者呢。但对我来说,它读起来就像它只是存储一个空对象:JavaScript函数如何缓存其结果?
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'对象,然后将其存储在'myFunc'函数'cache'属性内的'param'名称下。 – 2011-05-22 20:01:30