当我正在阅读书籍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