Underscore.js Function memoize 方法

返回 Underscore.js 函数


语法

_.memoize(function, [hashFunction])

memoizes() 方法可以缓存某函数的计算结果。对于耗时较长的计算是很有帮助的。如果传递了 hashFunction 参数,就用 hashFunction 的返回值作为 key 存储函数的计算结果。hashFunction 默认使用 function 的第一个参数作为 key。memoized 值的缓存可作为返回函数的 cache 属性。

示例

var _ = require('underscore');

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

var fibonacci1 = function(n) {
  return n < 2 ? n: fibonacci1(n - 1) + fibonacci1(n - 2);
};

var startTimestamp = new Date().getTime();
var result = fibonacci(1000);
var endTimestamp = new Date().getTime();
console.log(result + " in " + ((endTimestamp - startTimestamp)) + ' ms');

startTimestamp = new Date().getTime();
result = fibonacci1(30);
endTimestamp = new Date().getTime();
console.log(result + " in " + ((endTimestamp - startTimestamp)) + ' ms');

上面示例运行结果如下

Underscore.js  function memoizes 方法运行结果


返回 Underscore.js 函数

查看笔记

扫码一下
查看教程更方便