var func = function (param) {
if(!func.cache[param]) {
var result = {};
// 연산이 많은 로직 수행
func.cache[param] = result;
}
result = func.cache[param];
}
// 함수도 객체이므로 사용자가 프로퍼티를 추가할 수 있다.
// 결과(반환값)을 캐시에 저장하고 (이미 수행된 로직이면) 다음 호출시점부터 복잡한 연산을 피할 수 있다.
// 이렇게 캐시메모리에 저장하여 여러번 같은 로직수행을 피하는 방법을 메모리이제이션??? 메모이제이션(memoization) 이라고 한다.
func.cache = {};
func(7);
func(10);
func(18);
console.log(func);
console.log(func.cache);


반응형
Posted by 힘없는염소