【发布时间】:2010-04-18 02:43:00
【问题描述】:
当我阅读 Javascript: The Good Parts 一书时。下面这段代码看不懂:
我们可以通过制作一个 帮助我们记忆的功能 功能。记忆功能将 取一个初始的备忘录数组和 基本功能。它返回一个 管理备忘录的 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; 是没用的。如有错误请指正。
【问题讨论】:
-
哇。作为一个对函数式编程知识很少的人,这段代码让我大吃一惊。太聪明了!
标签: javascript closures