Looking for javascript Answers? Try Ask4KnowledgeBase
Looking for javascript Keywords? Try Ask4Keywords

JavaScriptテールコールの最適化


構文

  • 矢印関数のように暗黙的に呼び出すか、明示的に呼び出すかのどちらかを返すだけで、末尾呼び出し文
  • 関数foo(){リターンバー(); } // barの呼び出しは末尾呼び出しです
  • 関数foo(){bar(); } // barはテールコールではありません。戻り値が与えられていない場合、この関数はundefinedを返します。
  • const foo =()=> bar(); // bar()はテールコールです
  • const foo =()=>(poo()、bar()); // pooはテールコールではなく、barはテールコールです
  • const foo =()=> poo()&& bar(); // pooはテールコールではなく、barはテールコールです
  • const foo =()=> bar()+ 1; //バーは+ 1を返すためにコンテキストを必要とするため、テールコールではありません

備考

TCOは、ES2015仕様で言及されているように、PTC(Proper Tail Call)としても知られています。

テールコールの最適化 関連する例