예를 들어
var flower= function(){
var t=0,i=0;
for(;i<5000000;i ){
t
}
return t;
flower는 t의 값을 반환합니다
이 함수는 2~3초 정도 걸린다고 가정합니다.
메모이제이션 기능을 통해 같은 값을 다시 찾을 때 미리 캐시된 값을 바로 얻어서 바로 반환해줍니다.
메모이제이션 기능
var Memoize = function(fn, 캐시, refetch, obj){
cache = 캐시 || {};/ /결과를 캐시하는 데 사용됩니다
return function(){
var k = 인수[1] ? Array.prototype.join.call(arguments, '__') : 인수[0]; //'__'로 구분된 여러 매개변수
if (!(k in 캐시) || (refetch && 캐시[k] == refetch)) { //캐시 목록에 없고 다음과 같은 경우 주어진 재페치 값, Re-operate
cache[k] = fn.apply(obj || fn, 인수) //obj 매개변수를 사용하여 이 포인터를 변경할 수 있습니다
}
return 캐시[k ];//결과 반환
}
}
데모: