Javascript,阶乘,太难了
代码是这样的。 我不能完全理解这个代码。 它看起来像是添加缓存,然后添加缓存 但是这是如何工作的呢? 我们不需要循环来添加缓存吗Javascript,阶乘,太难了,javascript,Javascript,代码是这样的。 我不能完全理解这个代码。 它看起来像是添加缓存,然后添加缓存 但是这是如何工作的呢? 我们不需要循环来添加缓存吗 另外,返回func 代码比需要的更复杂。缓存阵列未用作缓存;它被用作硬编码的一种方法,0的阶乘是1。递归循环不需要添加到缓存中,但是如果添加了额外的行,那么数组将真正起到缓存的作用,并且它将在后续调用函数时提供性能改进。my CouComputer work wellFact是一个iife立即调用的函数表达式,返回func。因为JavaScript支持第一类函数,所以
另外,返回func 代码比需要的更复杂。缓存阵列未用作缓存;它被用作硬编码的一种方法,0的阶乘是1。递归循环不需要添加到缓存中,但是如果添加了额外的行,那么数组将真正起到缓存的作用,并且它将在后续调用函数时提供性能改进。my CouComputer work wellFact是一个iife立即调用的函数表达式,返回func。因为JavaScript支持第一类函数,所以这是可能的。
var fact = (function(){
var cache = {'0': 1};
var func = function(n){
var result = 0;
if(typeof(cache[n]) === 'number'){
result = cache[n];
}
else{
result = cache[n] = n * func(n-1);
}
return result;
}
return func;
})();
console.log(fact(5)); //120