當我正在閱讀書籍Javascript:The Good Parts。我不明白這塊代碼波紋管:Javascript關閉問題
我們可以通過進行 功能可以讓我們memoized 功能概括這一點。 memoizer功能將 採取初始備忘錄陣列和 基本功能。它返回一個 shell函數,該函數管理備忘錄 存儲,並根據需要調用基本函數 函數。我們通過殼 函數和函數的參數 的基本功能:
var memoizer = function (memo, fundamental) { var shell = function (n) { var result = memo[n]; if (typeof result !== 'number') { result = fundamental(shell, n); memo[n] = result; } return result; }; return shell; };
現在,我們可以用 memoizer定義斐波那契數,提供初始備忘錄 陣列和基本功能:
var fibonacci = memoizer([0, 1], function (test, n) { return test(n - 1) + test(n - 2); });
我的問題是什麼是測試功能?它什麼時候被定義和調用?這對我來說似乎很困惑。另外我認爲這種說法:memo[n] = result;
是無用的。如果我錯了,請糾正。
哇。作爲一個功能很少的編程知識的人,這段代碼讓我大開眼界。這太聰明瞭! – dmb 2010-04-18 03:00:19
相關:[關於「JavaScript - 良好部件」示例(第4.15節)的說明?](https://stackoverflow.com/questions/3798858/explanation-on-javascript-the-good-parts-example-section-4 -15) – Bergi 2014-05-30 13:57:08