这是代码:
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)
  })
}
我已经读过蹦床用于处理溢出问题,因此该函数不仅会保持调用自身和堆栈.
但是这个片段的功能如何呢?特别是trampoline功能?它究竟做了什么while以及它是如何实现其目标的?
感谢您的任何帮助 :)