Keep on moving

あんまりまとまってないことを書きますよ

関数内関数定義

schemeのブロック構造について学んだ際にjavascriptではどうなっているのか気になったので、調べてみた。
ソースは以下。

function foo(){
  function bar(){
    return 3;
  }

  return bar()+4;
}

console.log(foo());
// -> 7
console.log(bar());
// Error

schemeと同じですね。*1

*1:まぁ普通はこんな書き方しないわな。