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

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

出典

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


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

Last-modified: 2012-01-28 (土) 14:07:29