我正在尝试构建自己的for循环构造。
function loop(value, test, update, body) {
if (test(value)) {
body(value);
return loop(update(value), test, update);
}
}
Edge浏览器给我的错误:
VM1297:3 Uncaught TypeError: body is not a function
at loop (<anonymous>:3:3)
at loop (<anonymous>:4:10)
at <anonymous>:1:1
使用此调用:
loop(10, n => n > 0, n => n - 1, console.log)
为什么JS不将body视为函数?
您没有在下一次迭代中将body作为最后一个参数传递。你应该做loop(update(value), test, update, body);
而不是loop(update(value), test, update);
function loop(value, test, update, body) {
if (test(value)) {
body(value);
return loop(update(value), test, update, body);
}
}
loop(10, n => n > 0, n => n - 1, console.log)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句