摘要:冴羽的博客学习函数记忆
函数记忆
函数记忆是指将上次的计算结果缓存起来,当下次调用时,如果遇到相同的参数,就直接返回缓存中的数据。也就指明了函数记忆的使用场景:需要大量重复的计算,或者大量计算又依赖于之前的结果
第一版
1  | // 《JavaScript权威指南》8.8.4记忆  | 
注意:使用join拼接参数字符串时要考虑到toString隐式转换,传入对象时会出现问题
第二版
1  | // underscore  | 
以斐波那契数列(从第3项开始,每一项都等于前两项之和)为例:
1  | var count = 0;  | 
不使用函数记忆
1  | for (var i = 0; i <= 10; i++){  | 
每次计算索引大于1的值时都要先得到前两项的值,而前两项的索引如果大于1的话又需要得到更在前面的两项的值,这里面存在大量重复的计算
使用函数记忆
1  | fibonacci = memoize(fibonacci)  |