他は説明したundefined。undefined任意の値に再定義できるグローバル変数のようなものです。この手法は、誰かがundefined = 10どこかで書いた場合にすべての未定義のチェックが壊れることを防ぐためのものです。渡されない引数undefinedは、変数の 値に関係なく実数であることが保証されていますundefined。
ウィンドウを渡す理由は、次の例で説明できます。
(function() {
   console.log(window);
   ...
   ...
   ...
   var window = 10;
})();
コンソールは何をログに記録しますか?windowオブジェクトの価値は正しいですか?違う!10?違う!記録しundefinedます。JavaScriptインタープリター(またはJITコンパイラー)は、このように書き換えます-
(function() {
   var window; //and every other var in this function
   console.log(window);
   ...
   ...
   ...
   window = 10;
})();
ただし、window変数を引数として取得した場合、varはないため、驚きはありません。
jQueryが実行しているかどうかはわかりませんがwindow、何らかの理由で関数のローカル変数を再定義している場合は、グローバルスコープから借用することをお勧めします。