Skip to content

缓存代理

缓存代理可以为一些开销大的运算结果提供暂时的存储,在下次运算时,如果传递进来的参 数跟之前一致,则可以直接返回前面存储的运算结果。

一个用于求乘积的函数:

javascript
const mult = (...args) => {
  let res = args[0]

  for (let i = 1, l = args.length; i < l; i++) {
    res *= args[i]
  }

  return res
}

加入缓存代理函数

javascript
const proxyMult = (function () {
  const cache = {}

  return function (...args) {
    const key = args.join('*')
    return cache[key] || (cache[key] = mult(...args))
  }
})()

proxyMult(2, 3, 4)
proxyMult(2, 3, 4) // 直接从缓存中拿到结果