JavaScript Memoizer

JS
S
JavaScript

Memoization Function for JavaScript

1//We can beef up our module by adding functions later
2var Memoizer = (function(){
3    //Private data
4   var cache = {};
5   //named functions are awesome!
6   function cacher(func){
7      return function(){
8        var key = JSON.stringify(arguments);
9        if(cache[key]){
10          return cache[key];
11        }
12        else{
13          val = func.apply(this, arguments);
14          cache[key] = val;
15          return val;
16      }
17    }
18  }    
19    //Public data
20   return{
21     memo: function(func){
22       return cacher(func);
23     }
24   }
25})()
26
27
28var fib = Memoizer.memo(function(n){
29  if (n < 2){
30     return 1;
31   }else{
32     return fib(n-2) + fib(n-1);
33   }
34});

Created on 3/26/2021