编辑代码

function add(a, b) {
    return a + b;
}
function add3(a,b,c){
    return a+b+c;
}
let cacheArr = {}
function memoize(fn){
    // console.log(typeof fn.name)
    if(!(fn.name in cacheArr)){
        cacheArr[fn.name] = {}
    }
    return function(...args){
        let k = args.toString();
        if(!(k in cacheArr[fn.name])){
            cacheArr[fn.name][k] = fn(...args)
            console.log('cache')
            return cacheArr[fn.name][k]
        }
        return cacheArr[fn.name][k]
    }
}
let memoizeAdd = memoize(add)
console.log(memoizeAdd(1,2))
console.log(memoizeAdd(1,2))
console.log(memoizeAdd(5,2))
let memoizeAdd3 = memoize(add3)
console.log(memoizeAdd3(1,2,3))
console.log(memoizeAdd3(1,2,3))
console.log(cacheArr)