Appearance
缓存代理
缓存代理可以为一些开销大的运算结果提供暂时的存储,在下次运算时,如果传递进来的参 数跟之前一致,则可以直接返回前面存储的运算结果。
一个用于求乘积的函数:
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) // 直接从缓存中拿到结果