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);
반응형
'JavaScript' 카테고리의 다른 글
[JavaScript] arguments.callee - 익명함수 재귀호출 (0) | 2017.02.02 |
---|---|
[JavaScript] 커링 currying (0) | 2017.01.12 |
[JavaScript] 자바스크립트 형변환 String, Number, boolean (0) | 2016.12.19 |
[JavaScript] 자바스크립트 에러 던지기 - throw new Error() (0) | 2016.12.14 |
[JavaScript] 자바스크립트 배열 sort - 한글, 숫자 오름차순, 내림차순 정렬 (0) | 2016.12.05 |