递归中缓存的使用

这是在《高性能 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]
}

在这个函数中,用对象存储了每次递归的值,在多次调用递归时,每个数的阶乘只需要算一次,大大的提高了性能,我想这也是缓存存在的意义

原文地址:https://www.cnblogs.com/angle-yan/p/12777221.html