再看最后一眼青春的星空

灿烂火光就像盛夏的烟火

欢送挣扎万年文明的巅峰

我们啊

将变星辰永远飘在黑暗宇宙

这个男人来自三体

Tirion

导航

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 中进行取值,而不再进行计算

posted on 2017-03-03 17:17  Tirion  阅读(760)  评论(0编辑  收藏  举报

The Man from 3body