「JavaScript の再紹介」を読んで、関数について興味深いことに気付きました。
上記のように無名関数に提供される名前は、関数自体のスコープでのみ使用できます (または少なくとも使用できるはずです)。
nodejs プロンプトでチュートリアルのコードに基づいていくつかのことを入力すると、ノードが作成者と一致していることを確認できました。
function add(foo, bar) {
return foo + bar;
}
add(1, 2);
私を取得します 3、そして:
var five = (function plus(foo, bar) {
return foo + bar;
})(2, 3);
plus(2, 3);
plus が定義されていないという構文エラーが表示されます。
両方の関数を定義するために使用したコードは (名前を除いて) 同じだったので、少し混乱しています。JavaScript は、最初の関数が通常の関数で、2 番目の関数が名前付き無名関数であることをどのように認識しますか?