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.
![JavaScript の関数の中で window と undefined を定義する理由を調べてみた - Programming log - Shindo200](https://cdn-ak-scissors.b.st-hatena.com/image/square/0a3aff341725c2dfff43f640a19779325e0f7ebe/height=288;version=1;width=512/http%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2FS%2FShindo_Masaya%2F20131129%2F20131129113140.png)