JavaScript即時関数とは
- 2023.01.26
- 01_技術ブログ JavaScript
- #Javascript
こんにちは。
プログラム学習中のdynaです。
今回はjavaScriptにおける「即時関数」をまとめてみました。
即時関数とは?
即時関数とは、定義するとすぐに実行される関数です。
1度だけ呼ばれる関数でもあり、無名関数とも呼ばれます。
参考:https://developer.mozilla.org/ja/docs/Glossary/IIFE
書き方
1 2 3 4 5 | (function(){ //即時関数の処理 })(); |
使用例
1 2 3 4 5 | (function(){ console.log('即時関数で呼び出しています'); })(); |
実行結果
()がなぜつくのか?
単純に書き方を見て、()はなぜつくのか疑問に思いました。
()については、以下に記載があります。
引用元:https://developer.mozilla.org/ja/docs/Glossary/IIFE
- 最初の部分は
グループ化演算子
()
に囲まれた静的スコープ付きの無名関数です。これは IIFE イディオム内で、汚いグローバルスコープと同様に変数へアクセスすることを防ぎます。- 2 つ目の部分は即時実行関数式の
()
で、これを通じて JavaScript エンジンは直接関数を解釈実行します。
つまり、関数を()で囲めば、即時関数として読み込まれる、という形になります。
関数の呼び出し方は以下ですので、
1 2 3 4 5 6 | function myFunc(){ console.log('関数で呼び出しています'); }; myFunc(); //ここで呼び出している |
この関数の呼び出しに()をつけて、(関数)();と記載してみると、以下のように読み取れます。
1 2 3 4 5 6 7 8 9 | (function myFunc(){ console.log('関数で呼び出しています'); })(); ↓ (function(){ console.log('関数で呼び出しています'); })(); |
ということで、()();の形になるんですね・・・
javaScript、楽しいですが学ぶこともたくさんありますね!
もし上記の解釈がちょっと違うんじゃない?という方がいましたら、お問い合わせからご連絡お願いします。
<合わせて読みたい>