javascriptの一時的な関数、即時関数

 javascriptには即時関数という機能があります。

即時関数 (IIFE; Immediately Invoked Function Expressions) は、関数がブラウザーのコンパイラーに読み込まれた直後に呼び出される関数です。IIFE は、関数宣言の末尾に追加の括弧 “()” があるかどうかで識別できます。

 Function (関数) – 用語集 | MDNより引用。
 書き方は

(function(){/*処理本文*/}(引数));
(function(){/*処理本文*/})(引数);

です。どちらでも問題ありません。即時関数と名付けられていますが、動作からは一時的な関数とも言えます。即時関数は

  • 関数のインスタンスを作る
  • その関数を実行する
  • その関数を捨てる(ステートメントの実行を終了したあとはもう参照しないので)
  • Bear Bibeault; John Resig. JavaScript Ninjaの極意 (Kindle の位置No.2730-2732). . Kindle 版. より引用。
    ということを行います。
     即時関数が用いられる主な目的はスコープの制御です。スコープは変数名の参照範囲のことです。変数名ごとにスコープが定められており、スコープの範囲内ならば変数を呼び出し、書き換えることができ、範囲外ならば呼び出せず、書き換えられないといった具合です。
     即時関数内で宣言された変数は宣言された即時関数内のみがスコープになります。このため、あるコードを即時変数として記述したならば既存のコードの変数名を考慮することなくそのコードを既存のコードに継ぎ足せます。特に即時関数に出番があるのは、任意のページに好き勝手スクリプトを追加する目的であるブックマークレットや変数名の衝突が容易に予想できる圧縮される予定のコードなんかです。

    >株式会社シーポイントラボ

    株式会社シーポイントラボ

    TEL:053-543-9889
    営業時間:9:00~18:00(月〜金)
    住所:〒432-8003
       静岡県浜松市中央区和地山3-1-7
       浜松イノベーションキューブ 315
    ※ご来社の際はインターホンで「316」をお呼びください

    CTR IMG