コストのかかる関数の結果をメモ化する

 function factorial(n) {
     if (!factroial.cahche) {
         factroial.cache = {
             "0" : 1,
             "1" : 1
         };
     }
     
     if (!factorial.cache.hasOwnProperty(n)) {
         factorial.cache[n] = n * factorial(n - 1);
     }
     
     return factorial.cache[n];
 }
 function memoizer(fundamental, cache) {
     cache = cache || {};
     var shell = function (arg) {
         if (!cache.hasOwnProperty(arg)) {
             cache[arg] = fundamental(arg);
         }
         return cache[arg];
     }
     return shell;
 }
 
 var memoized = memorizer(original, { "arg" : "value" });

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS