javascriptの即時関数はなぜあの書き方で即時関数になるのか
今日とてもわかりやすく説明してもらったので。
// 即時関数の基本の形 (function myFunc(){ doSomething; })()
なぜこうなるのか。
ただの関数宣言
// 関数宣言 function myFunc(){ doSomething; }
javascriptでは最初にfunctionがくると関数宣言だとみなされます。
じゃあこれを回避するためには?
先頭にfunctionがきてはダメなので適当な何かをつければいいです。
しかし適当といっても文字の一部とみなされたり、暗黙の型変換が起こったりしては困るので特に影響を与えない()でくくります。
3+3を(3+3)とするのと同じです。
// 関数宣言でもなく実行もされないただの文字の羅列 (function myFunc(){ doSomething; })
しかしこのままでは関数宣言ではないので利用できず、実行もされません。
関数の実行をするためには?
最後に()をつけるんでしたね。
// 即時関数の基本の形 (function myFunc(){ doSomething; })()
以上です。