尾调用(Tail Call)是指在调用函数时直接将被调函数的返回值作为调用函数的返回值返回。如果这个调用是调用了调用函数本身(递归
调用),这叫做尾递归(Tail Recursive)。使用尾调用的一个优点在于它不消耗额外的调用栈空间,它可以替换当前的栈帧。因此,使
用尾调用来替换标准的调用被称作尾调用消除(Tail Call Elimination),或者尾调用优化(Tail Call Optimization)。
尾调用的例子:
function foo(data)
A(data);
return B(data);
B(data)就是一个尾调用。
现在来看以下几个例子:
function foo1(data)
return A(data) + 1;