简体   繁体   English

javascript使用参数从内部调用函数表达式本身

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM