我学习了underscorejs _.memoize方法,我想知道他的适用场景。 头晕!头晕!不理解API的含义。
var fibonacci = _.memoize(function(n) {
return n < 2 ? n: fibonacci(n - 1) + fibonacci(n - 2);
});
答案 0 :(得分:1)
Memoization创建一个记住其结果的函数,以便它不必再次计算它们。
例如,在计算fibonacci(5)时:
等等。你可以看到斐波那契(3)被使用了两次,但每次都会得到相同的结果,所以不需要计算两次。相反,memoized fibonacci函数仅在第一次计算它,并存储结果;在此之后使用fibonacci(3)时,它会立即返回存储的结果。
另见What is memoization good for and is it really all that helpful?。