执行一个简单的递归函数,调用另一个函数,并且范围是第一次正确工作的位置,但下次总是将参数设置为未定义。
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")
答案 0 :(得分:3)
你没有通过&#34; param&#34;递归调用的参数。
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")
应该修复它。
答案 1 :(得分:2)
修复变量名称:
par
=&gt; param
operation(param)
答案 2 :(得分:1)
你确定你不想这样做吗?
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")
答案 3 :(得分:1)
工作代码是:
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")
当你以递归方式调用repeat时,你应该提供第三个参数--param
diff:在第8行返回重复(操作, - num, param )