html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script type="text/java script"> var count = 0; function fib(n) { count++; if( n < 0 ) return; if( n === 0 || n === 1) return 1; return arguments.callee(n-1) + arguments.callee(n-2); } function fib1() { var arr = [1, 1]; return function (n) { count++; if( n < 0 ) return; // 将数据取出来 var temp = arr[n]; if(temp) { // 有值,直接用 return temp; } else { // 没有值 temp = arguments.callee(n-1) + arguments.callee(n-2); arr[arr.length] = temp; return temp; } } } var func2 = fib1(); // var num = fib(20); // 10946, 21891 var num = func2(20); // 10946, 39 alert(num + ", " + count);