【发布时间】:2018-12-27 02:28:49
【问题描述】:
我创建了一个有效的递归 for 循环,但它仅在我的回调没有参数时才有效。我试过callback(arguments) 和callback(...arguments)。
感谢您提供的任何帮助!
function loopFunc (numOfSteps, callback) {
let i = 0;
if (i >= numOfSteps) {
let i = 0
return
}
callback()
loopFunc(numOfSteps - 1, callback)`enter code here`
}
如果回调不带参数,它会起作用:
function noArgsHello() {
console.log('hello')
}
const thisWorks = loopFunc(3, noArgsHello);
thisWorks()
如果回调带参数就不行:
function sayHello (input) {
console.log(input)
}
const thisDoesntWork = loopFunc(3, sayHello('hello');
thisDoesntWork()
【问题讨论】:
-
callback应该是function对象,而不是function执行结果(如果结果不是函数对象)。const thisDoesntWork = loopFunc(3, function(){sayHello('hello');}); thisDoesntWork();应该工作。
标签: javascript callback arguments