[英]javascript calling a function expression itself from inside it with arguments
請有人告訴我這里的結果 384 怎么樣。 據我說:被調用的函數值大於 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
這一行n * fac(n - 2)
遞歸地使用新值調用自身。 起初它會用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.