我是 JavaScript 新手。我想使用两个函数实现递归:一个是公共(public)函数,另一个是私有(private)函数。
在 Java 中,我总是这样实现递归
public int sumOfPrevious(int n){
return addNumbers(n);
}
private int addNumbers(int n){
if (n == 1)
return 1;
else
return n + addNumbers(n-1);
}
然后调用 System.out.println(sumOfPrevious(5)) 返回 15
但是如何在 JavaScript 中实现类似的东西呢?
我试过这个:
function sumOfPrevious(n){
return function privateFunc(n){
if (n == 1)
return 1;
else
return n + privateFunc(n - 1);
};
}
但是调用 console.log(sumOfPrevious(5)) 只会给我 [Function: privateFunc]
为什么会这样,我该如何解决?
最佳答案
您需要声明嵌套函数然后使用它,而不是返回嵌套函数。
function sumOfPrevious(n){
function privateFunc(n){
if (n == 1)
return 1;
else
return n + privateFunc(n - 1);
}
return privateFunc(n);
}
关于javascript - JavaScript 中的基本公共(public)/私有(private)函数结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21357264/