多次閱讀後,我仍不明白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