JavaScript尾调用优化


句法

  • 只有隐式地返回call(),例如在箭头函数或显式中,可以是尾调用语句
  • function foo(){return bar(); } //对bar的调用是一个尾调用
  • function foo(){bar(); } // bar不是尾调用。当没有给出返回时,该函数返回undefined
  • const foo =()=> bar(); // bar()是一个尾调用
  • const foo =()=>(poo(),bar()); // poo不是尾调用,bar是尾调用
  • const foo =()=> poo()&& bar(); // poo不是尾调用,bar是尾调用
  • const foo =()=> bar()+ 1; // bar不是尾调用,因为它需要上下文返回+ 1

备注

TCO也称为PTC(正确的尾部呼叫),因为它在ES2015规范中被引用。

尾调用优化 相关例子