我试图在闭包中编写递归。递归部分位于函数中。下面是模式:
if (whatever) {
doStuff: (x) => {
if (x<10) doStuff(x+1);
}
doStuff(0);
}它不起作用:doStuff is not defined.,但这是可行的:
if (whatever) {
function doStuff(x) {
if (x<10) doStuff(x+1);
}
doStuff(0);
}我尝试过以许多方式声明函数,但是如果它被声明为箭头函数,它就永远不会起作用。我想知道为什么?
发布于 2018-06-02 08:15:13
使用的方法并不是定义函数的正确方法。只需将:替换为=,并用任何真实值初始化--任何变量。
下面是您修改的代码。
var whatever = true
if (whatever) {
var doStuff = (x) => {
if (x<10)
return x + doStuff(x+1);
return x
}
console.log(doStuff(0)) // 55
}https://stackoverflow.com/questions/50654826
复制相似问题