2 組のシナリオをテストしていました。
1.) グローバル変数を引数として渡します...
(function(d){
//do some stuff with d
return //something
})(document);
...またはローカル変数にグローバルを割り当てます。
(function(){
var d = document;
//do the same stuff
return //something
})();
結果は、ブラウザーごと、バージョンごと、さらにはテストごとに異なります。
2.) XMLHttpRequest を介して取得した大きなデータ オブジェクトがあります。このオブジェクトはいくつかのメソッドによってアクセスされますが、親関数のスコープに関連するのは 1 つだけです。
(function(){
//get data object
var data = response;
//change GUI, assign events, do some other stuff
var searchInData = function(id){ //this will be used often
//code
};
//data object won't be accessed any more
//a lot of code
return //something
})();
...またはこれを使用するには?
(function(){
var search = (function(){
var data = response;
//change GUI, assign events, do some other stuff
return function(id){
//code
}
})();
//other stuff
return //something
})();
繰り返しますが、明確な結果を得ることができませんでした: どちらを使用するか、なぜ、いつ使用しますか?