这是在《高性能 javascript》中看到的阶乘递归函数
function memfactorial(n){
if(!memfactorial.cache){
memfactorial.cache = {
"0": 1,
"1": 1
}
}
if(!memfactorial.cache.hasOwnProperty(n)){
memfactorial.cache[n] = n * memfactorial(n-1)
}
return memfactorial.catche[n]
}
在这个函数中,用对象存储了每次递归的值,在多次调用递归时,每个数的阶乘只需要算一次,大大的提高了性能,我想这也是缓存存在的意义