如何实现JavaScript中的尾调用优化?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1980个文字,预计阅读时间需要8分钟。
尾调用(Tail Call)是函数式编程的一个重要概念,本文简要介绍其含义、用途和方法。一、什么是尾调用?尾调用的概念非常简单,一句话就能说清楚:就是指某个函数的最后一行执行的是调用另一个函数。二、尾调用的含义非非常简单,一句话就能说清楚,就是指某个函数的最后一行执行的是调用另一个函数。
尾调用(Tail Call)是函数式编程的一个重要概念,本文介绍它的含义和用法。
一、什么是尾调用?
尾调用的概念非常简单,一句话就能说清楚,就是指某个函数的最后一步是调用另一个函数。
function f(x){ return g(x); }
上面代码中,函数f的最后一步是调用函数g,这就叫尾调用。
以下两种情况,都不属于尾调用。
// 情况一 function f(x){ let y = g(x); return y; } // 情况二 function f(x){ return g(x) + 1; }
上面代码中,情况一是调用函数g之后,还有别的操作,所以不属于尾调用,即使语义完全一样。情况二也属于调用后还有操作,即使写在一行内。
尾调用不一定出现在函数尾部,只要是最后一步操作即可。
function f(x) { if (x > 0) { return m(x) } return n(x); }
上面代码中,函数m和n都属于尾调用,因为它们都是函数f的最后一步操作。
二、尾调用优化
尾调用之所以与其他调用不同,就在于它的特殊的调用位置。
本文共计1980个文字,预计阅读时间需要8分钟。
尾调用(Tail Call)是函数式编程的一个重要概念,本文简要介绍其含义、用途和方法。一、什么是尾调用?尾调用的概念非常简单,一句话就能说清楚:就是指某个函数的最后一行执行的是调用另一个函数。二、尾调用的含义非非常简单,一句话就能说清楚,就是指某个函数的最后一行执行的是调用另一个函数。
尾调用(Tail Call)是函数式编程的一个重要概念,本文介绍它的含义和用法。
一、什么是尾调用?
尾调用的概念非常简单,一句话就能说清楚,就是指某个函数的最后一步是调用另一个函数。
function f(x){ return g(x); }
上面代码中,函数f的最后一步是调用函数g,这就叫尾调用。
以下两种情况,都不属于尾调用。
// 情况一 function f(x){ let y = g(x); return y; } // 情况二 function f(x){ return g(x) + 1; }
上面代码中,情况一是调用函数g之后,还有别的操作,所以不属于尾调用,即使语义完全一样。情况二也属于调用后还有操作,即使写在一行内。
尾调用不一定出现在函数尾部,只要是最后一步操作即可。
function f(x) { if (x > 0) { return m(x) } return n(x); }
上面代码中,函数m和n都属于尾调用,因为它们都是函数f的最后一步操作。
二、尾调用优化
尾调用之所以与其他调用不同,就在于它的特殊的调用位置。

