_.memoize适用的场景是什么?

时间:2016-01-09 08:07:40

标签: javascript

我学习了underscorejs _.memoize方法,我想知道他的适用场景。 头晕!头晕!不理解API的含义。

var fibonacci = _.memoize(function(n) {
    return n < 2 ? n: fibonacci(n - 1) + fibonacci(n - 2);
});

1 个答案:

答案 0 :(得分:1)

Memoization创建一个记住其结果的函数,以便它不必再次计算它们。

例如,在计算fibonacci(5)时:

  • 斐波那契(5)=斐波那契(4)+斐波那契(3)
  • 斐波那契(4)=斐波那契(3)+斐波那契(2)

等等。你可以看到斐波那契(3)被使用了两次,但每次都会得到相同的结果,所以不需要计算两次。相反,memoized fibonacci函数仅在第一次计算它,并存储结果;在此之后使用fibonacci(3)时,它会立即返回存储的结果。

另见What is memoization good for and is it really all that helpful?