资料地址:尾递归优化的实现研究学习阮一峰老师的ES6教程,里面讲到了“尾递归优化”,看不懂这块的代码逻辑,代码如下:function tco(f) { var value; var active = false; var accumulated = []; return function accumulator() { accumulated.push(arguments); if (!active) { active = true; while (accumulated.length) { value = f.apply(this, accumulated.shift()); } active = false; return value; } };}var sum = tco(function(x, y) { if (y > 0) { return sum(x + 1, y - 1) } else { return x }});sum(1, 100000)// 100001运行了下这段代码,虽然反映比较慢,但是确实没有卡死,虽然阮一峰老师对这段代码进行了讲解,但是我还是没有调试明白。请求大神能具体讲下这段代码的运行逻辑和优化思路,多谢了。
添加回答
举报
0/150
提交
取消