function memoized (fn, keymaker) {
var lookupTable = {}, key;

keymaker || (keymaker = function (args) {

return JSON.stringify(args);
});

return function () {

var key = keymaker.call(this, arguments);

console.dir(lookupTable);
return lookupTable[key] || (lookupTable[key] = fn.apply(this, arguments));
}
}

var fastFibonacci = memoized(function (n) {
if (n < 2) {
return n;
}
else {
return fastFibonacci(n-2) + fastFibonacci(n-1);
}
});

fastFibonacci(1000);


저위에 캐쉬를 JSON을줘서 프로퍼티 이름이 {0:1} 이런식으로 들어가니 헷갈렷내