const f =
( /* 無名関数Aを実行するために関数の定義を囲む開き括弧 */
function() /* 無名関数(Aとする)の定義の始まり */
{
let count = 0;
return function() { /* 無名関数(Bとする)の定義の始まり */
return `この関数が呼ばれた回数:${++count}回。`;
} /* 無名関数Bの定義の終わり */
} /* 無名関数Aの定義の終わり */
) /* 無名関数Aを実行するための閉じ括弧 */
(); /* 関数定義の後に()があるので、無名関数Aを実行している。無名関数Bが値として戻る */
console.log(f()); // この関数が呼ばれた回数:1回。
console.log(f()); // この関数が呼ばれた回数:2回。
console.log(f()); // この関数が呼ばれた回数:3回。