/**
* 缓存代理
*/
const mult = (...arg) => {
let res = 1;
for(let i = 0, l = arg.length; i < l; i++) {
res = arg[i] * res;
}
return res;
}
const plus = (...arg) => {
let res = 0;
for(let i = 0, l = arg.length; i < l; i++){
res = arg[i] + res;
}
return res;
}
const proxyFactry = (fn) => {
let cache = {};
return (...arg) => {
let key = Array.prototype.join.call(arg, ',');
if(cache[key]) {
return cache[key]
}
return cache[key] = fn.apply(this, arg)
}
}
const proxyPlus = proxyFactry(plus);
const proxyMult = proxyFactry(mult);
console.log(proxyPlus(1,2,3));
console.log(proxyPlus(1,2,3));
console.log(proxyMult(1,2,3));
console.log(proxyMult(1,2,3));
console