[英]javascript calling a function expression itself from inside it with arguments
Please, someone, tell me how is the result 384 here.请有人告诉我这里的结果 384 怎么样。 According to me: Called function value is greater than 2 so, the result should be 8 * fac(8 - 2) 64-2 ans: 62 I understand something happening with "fac" please explain.
据我说:被调用的函数值大于 2 所以,结果应该是 8 * fac(8 - 2) 64-2 ans: 62 我明白“fac”发生了什么,请解释一下。
let factoria = function fac(n){
return n < 2 ? 1 : n * fac(n - 2);
}
console.log(factoria(8));
// result 384
This line n * fac(n - 2)
is recursively calling the itself with new value.这一行
n * fac(n - 2)
递归地使用新值调用自身。 At first it will be called with 8 * fac(8 - 2)
so now fac
will be called again with 6, then again with 4 and so on起初它会用
8 * fac(8 - 2)
调用,所以现在fac
会用 6 再次调用,然后再用 4 调用,依此类推
let factoria = function fac(n) { console.log(n) return n < 2 ? 1 : n * fac(n - 2); // recursive function } console.log(factoria(8));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.