2010.06.04——— javascript 记忆功能
[color=red]函数可以用对象去记住先前操作的结果,从而能避免无谓的运算,这种优化被称为记忆。
JavaScript的对象和数组要实现这种优化是非常方便的[/color]
计算阶乘
[color=red]函数可以用对象去记住先前操作的结果,从而能避免无谓的运算,这种优化被称为记忆。
JavaScript的对象和数组要实现这种优化是非常方便的[/color]
计算阶乘
var memoizer = function(memo,fundamental){
var shell = function(n){
var result = memo[n];
if(typeof result !== 'number'){
document.write("fd ");
result = fundamental(shell,n);
memo[n] = result;
}
return result;
};
return shell;
};
var factorial = memoizer([1,1],function(shell,n){
return n * shell(n-1);
});
alert(factorial(4));
alert(factorial(4));//第二次调用时 document.write("fd ");就没有执行了