这是代码:
function repeat(operation, num) {
return function() {
if (num <= 0) return
operation()
return repeat(operation, --num)
}
}
function trampoline(fn) {
while(fn && typeof fn === 'function') {
fn = fn()
}
}
module.exports = function(operation, num) {
trampoline(function() {
return repeat(operation, num)
})
}
Run Code Online (Sandbox Code Playgroud)
我已经读过蹦床用于处理溢出问题,因此该函数不仅会保持调用自身和堆栈.
但是这个片段的功能如何呢?特别是trampoline功能?它究竟做了什么while以及它是如何实现其目标的?
感谢您的任何帮助 :)