JSFiddle - React, Tailwind, and code Playground

by camnpr

JavaScript

//提升JavaScript递归效率:Memoization技术详解

function memoizer(fundamental, cache) {   
  cache = cache || {};   
  var shell = function(arg) {   
      if (! (arg in cache)) {   
          cache[arg] = fundamental(shell, arg);   
      }   
      return cache[arg];   
  };   
  return shell;   
} 

var fibonacci = memoizer(function(recur, n) {   
  return recur(n - 1) + recur(n - 2);   
}, { "0": 0, "1": 1} ); 

alert(fibonacci(40));