* コストのかかる関数の結果をメモ化する [#s2deef6e]

 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" });

** 出典 [#u4a05a1b]

http://www.slideshare.net/nzakas/writing-efficient-javascript


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS