lodash memoize
memoize
基本的な説明
関数の計算結果をキャッシュしてくれる。 メモ化する
使い方
var fibonacci = _.memoize(function(n) { return n < 2 ? n : fibonacci(n - 1) + fibonacci(n - 2); }); fibonacci(10);
関数の結果をキャッシュしてくれるので、重い処理も高速化される可能性がある。
最初にnに10が入る
- fibonacci(9) が計算される(この時のn-2にあたるfibonacci(8)はまだ実行されない)
- fibonacci(9)が実行されるときに n-1にあたる、fibonacci(8)が実行される この時のn-2であるfibonacci(7)はまだ実行されない。
- fibonacci(8) が実行される
- その関数内でfibonacci(7)が実行され
- その関数内でfibonacci(6)が実行されってどんどんつながって。
- それ以降はキャッシュにのった関数の結果が戻されるってこと
めっちゃ基礎で今更感あるけどmemo