
var Factorial = (function () {
var x = 1;
return function f (num) {
if (num == 0) return x;
x *= num;
return f(num - 1);
}
})();
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
有啥奇怪的,Factorial 的值是里面那个 function,
Factorial(5)返回的是对它调用的结果。如果递归的
f()调用前没有加return,最外层的调用肯定走不到return x那里,所以就没有返回值。最里层的调用虽然走
return x,但是返回出来的值没被利用(原来是通过return f()递归调用来利用的),直接被抛弃了。