理解递归函数的基础知识

Ben*_*nas 0 javascript recursion

我似乎无法完全理解递归函数的基本原理.我们有这个代码:

function myself (n) {
if (n <= 1) {
    return 1;
}
return n * myself(n-1);
}
myself(5);
Run Code Online (Sandbox Code Playgroud)

我得到5将乘以4等于20然后20乘以3等等但是我不太明白的是如何在一个函数中'n'是两个不同的数字.

Que*_*tin 6

怎么能在一个函数中成为两个不同的数字

函数调用存在变量范围,而不是函数定义.

每次调用myself都会得到一个n自己的变量,这与之前存在的ns 无关.