【发布时间】:2016-04-13 23:17:57
【问题描述】:
我学习underscorejs _.memoize 方法,想知道他的适用场景。 晕眩的!晕眩的!不明白 API 在说什么。
var fibonacci = _.memoize(function(n) {
return n < 2 ? n: fibonacci(n - 1) + fibonacci(n - 2);
});
【问题讨论】:
标签: javascript
我学习underscorejs _.memoize 方法,想知道他的适用场景。 晕眩的!晕眩的!不明白 API 在说什么。
var fibonacci = _.memoize(function(n) {
return n < 2 ? n: fibonacci(n - 1) + fibonacci(n - 2);
});
【问题讨论】:
标签: javascript
Memoization 创建一个函数来记住它的结果,这样它就不必再次计算它们。
例如计算斐波那契(5)时:
等等。可以看到 fibonacci(3) 被使用了两次,但是每次的结果都是一样的,所以不需要计算两次。相反,memoized fibonacci 函数只计算第一次,并存储结果;此后每当使用 fibonacci(3) 时,它都会立即返回存储的结果。
另见What is memoization good for and is it really all that helpful?。
【讨论】: