JavaScript 缓存基本原理

// 这是个闭包函数,接收一个函数,可以把接收的函数转换成具有缓存能力的函数
var memoize = function(f) {
// 使用一个 cache 对象来进行缓存
var cache = {};

// 返回一个函数,这个函数就是具有缓存功能的 f 函数
return function() {
// 缓存的 key 是通过 arguments 生成的
var arg_str = JSON.stringify(arguments);
// 当有缓存的时候直接取缓存的,没缓存则只需 f 函数并进行缓存
cache[arg_str] = cache[arg_str] || f.apply(f, arguments);
return cache[arg_str];
};
};

主要就是使用了一个 cache 对象来进行数据缓存,通过某种方式(如参数)生成一个独一无二的 key,对应的值就是缓存的值。

只要再次传入相同的参数,就从 cache 中进行取值,而不再进行计算

发表评论

电子邮件地址不会被公开。 必填项已用*标注