이렇게 해놓고 console.log(factorial(4)); 찍어보면 아래같이 찍힘.
key {"0":4}
key {"0":3}
key {"0":2}
key {"0":1}
val 1
val 2
val 6
val 24
24
왜 if문 위쪽 로그가 4번 찍힌다음에 역방향으로 이프문에 들어가는거임?
if (num === 1) {
return 1;
}
return num * factorial(num - 1);
});
function memorize(func) {
let cache = {};
return function () {
let key = JSON.stringify(arguments);
console.log("key", key);
if (cache[key]) {
return cache[key];
} else {
let val = func.apply(this, arguments);
console.log("val", val);
cache[key] = val;
return val;
}
};
}
console.log(factorial(4));
함수mem부터 실행되니간?..