执行一个调用另一个函数的简单递归函数,范围偏离它第一次正确工作的地方,但下一次它总是将参数设置为未定义。
function log(string){
console.log(string)
}
function repeat(operation, num, param) {
if (num <= 0) return
operation(param)
return repeat(operation, --num)
}
repeat(log, 5, "hello there")
最佳答案
您没有将“param”参数传递给递归调用。
function log(string){
console.log(string)
}
function repeat(operation, num, param) {
if (num <= 0) return
operation(param)
return repeat(operation, --num, param)
}
repeat(log, 5, "hello there")
应该修复它。
关于javascript递归和范围澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35248686/