此阶乘方法中每个函数调用的结果存储在哪里?
Where is the result of each function call stored in this factorial method?
这是一个对象,其方法将通过递归 return 数字的阶乘。我无法理解的是,当函数再次调用自身并将 inputNumber
乘以自身 -1
时,factorialized
变量的值存储在哪里。有人可以给我解释一下吗?
const Calculate = {
factorial(inputNumber) {
if (inputNumber < 2) { return 1 };
const factorialized = inputNumber * this.factorial(inputNumber - 1);
return factorialized;
}
}
Calculate.factorial(5);
很多语言都有Memory Heap
为它们的操作等保存价值
假设您的函数将执行 3 次:
- 第1次执行的结果将分配到
Memory Heap
的第[k]个位置
- 那么第2次执行会分配到第[k+1]个位置
- 第3次执行分配到第[k+2]个位置计算值存入第[k+2]个位置
- 那么第2个函数将使用第[k+2]个位置来计算他们的结果
- 那么第一个函数将使用第[k+1]个位置来计算他们的结果
- 最终会return值
这是一个对象,其方法将通过递归 return 数字的阶乘。我无法理解的是,当函数再次调用自身并将 inputNumber
乘以自身 -1
时,factorialized
变量的值存储在哪里。有人可以给我解释一下吗?
const Calculate = {
factorial(inputNumber) {
if (inputNumber < 2) { return 1 };
const factorialized = inputNumber * this.factorial(inputNumber - 1);
return factorialized;
}
}
Calculate.factorial(5);
很多语言都有Memory Heap
为它们的操作等保存价值
假设您的函数将执行 3 次:
- 第1次执行的结果将分配到
Memory Heap
的第[k]个位置
- 那么第2次执行会分配到第[k+1]个位置
- 第3次执行分配到第[k+2]个位置计算值存入第[k+2]个位置
- 那么第2个函数将使用第[k+2]个位置来计算他们的结果
- 那么第一个函数将使用第[k+1]个位置来计算他们的结果
- 最终会return值