資料地址:尾遞歸優(yōu)化的實(shí)現(xiàn)研究學(xué)習(xí)阮一峰老師的ES6教程,里面講到了“尾遞歸優(yōu)化”,看不懂這塊的代碼邏輯,代碼如下: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運(yùn)行了下這段代碼,雖然反映比較慢,但是確實(shí)沒有卡死,雖然阮一峰老師對(duì)這段代碼進(jìn)行了講解,但是我還是沒有調(diào)試明白。請(qǐng)求大神能具體講下這段代碼的運(yùn)行邏輯和優(yōu)化思路,多謝了。
javascript中手動(dòng)實(shí)現(xiàn)“尾遞歸優(yōu)化”,這段代碼的運(yùn)行邏輯是什么?
溫溫醬
2018-11-22 18:14:04