[英]javascript recursion and scope clarification
做一个简单的递归函数,调用另一个函数,并且范围是第一次正确工作的地方,但下次它总是将param设置为undefined 。
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")
应该解决它。
修复变量名称:
par
=> param
operation(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")
工作代码是:
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行返回repeat(operation, - num, param )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.