2013-11-29 JavaScript の関数の中で window と undefined を定義する理由を調べてみた JavaScript jQuery などの JavaScript のライブラリのソースコードを読んでいると、このようなコーディングパターンをよく見かけます。 (function(window, undefined){ // ... })(this); これはすぐに実行される関数の中にライブラリの実装コードを閉じ込めて、関数の中で定義した変数がどこからでも参照できる変数(グローバル変数)になる問題を回避しています。これは「グローバル汚染の回避」と呼ばれています。下記のコードを見てください。 (function(window, undefined){ var foo = "foo"; console.log(foo) //=> foo })(this); console.