Tag: 尾调用优化

在NodeJS中的尾recursion

所以我最近碰到的情况下,我需要编写的代码,callback调用自己等等,并想知道NodeJS和尾调用支持,所以我发现这个答案https://stackoverflow.com/a/30369729说,是的,它是支持的。 所以我尝试了这个简单的代码: "use strict"; function fac(n){ if(n==1){ console.trace(); return 1; } return n*fac(n-1); } fac(5); 使用Linux x64上的Node 6.9.2并将其作为node tailcall.js –harmony –harmony_tailcalls –use-strict ,结果为: Trace at fac (/home/tailcall.js:4:11) at fac (/home/tailcall.js:7:11) at fac (/home/tailcall.js:7:11) at fac (/home/tailcall.js:7:11) at fac (/home/tailcall.js:7:11) at Object.<anonymous> (/home/tailcall.js:10:1) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) 这清楚地显示了调用堆栈充满了调用,并且不支持尾recursion,虽然我使用了最新的NodeJS。 […]