即時関数とfunction式とfunction文

即時関数
  • 無名関数を用いてブロックスコープ(に似ているもの)を作り出す(JavaScriptにはブロックスコープがない)。
  • 関数を定義すると同時に実行、再利用はされない。
  • 再利用はせず、外部の関数や変数にも影響を与えない。
  • privateやpublicなどのアクセス修飾子がJSにはないため、プライベートなプロパティ・メソッドを定義できる。

一方名前付き関数は、再利用を前提とした処理を定義する。

即時関数の式と文
  • function式
    • 括弧が前にこない場合は、変数に代入しないと使えない。
(function(){
})();

//または

var foo = function(){
})();


  • function文
    • 文として認識される。
    • 宣言より前に記述してもok。
func(); //宣言より前でもok

function(){
}();