呼叫/ CC与闭包

Mas*_*sse 5 javascript callcc

维基百科提到"在任何支持闭包和正确尾调用的语言中,都可以用延续传递方式编写程序并手动实现调用/ cc."

如何在例如javascript中实现此功能?我知道javascript不做tco,但假设堆栈空间没有用完

小智 3

不可能用 JavaScript 编写 call/cc 实现:

JavaScript 不满足“正确的尾部调用”的要求(没有额外的堆栈创建)。然而,我相信使用异常的延续形式是可能的,例如 Jetty 中的延续形式。“CPS”就像传递函数对象一样简单,尽管最终它也会遇到堆栈问题,除非偶尔退出。

快乐编码。