我正在测试两对场景:
1.) 将全局变量作为参数传递...
(function(d){
//do some stuff with d
return //something
})(document);
...或将全局分配给局部变量。
(function(){
var d = document;
//do the same stuff
return //something
})();
结果因浏览器而异,从版本到版本,甚至从测试到测试!
2.) 我有一个通过 XMLHttpRequest 获得的大数据对象。假设这个对象被几种方法访问,但只有一个在父函数的范围内是相关的。
(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
})();
同样,我无法得到明确的结果:使用哪个,为什么以及何时?