我看到了这段代码(明确地说,这是jQuery的代码,并进行了修改)
(function(window,undefined){
var jQuery=(function(){
var jQuery=something;
jQuery.xxx=xxx;
//...
return jQuery;
})();
//...
window.jQuery=window.$=jQuery;
})(window);
虽然我理解将代码包装在内联函数调用中可以清晰地定义变量作用域,但我不明白以下内容的好处:1.传递带参数的
window
而不是直接使用它,
2.通过未定义的参数获取undefined
实例,以及
3.通过另一个内联函数调用的返回值来定义jQuery
。可以有人解释一下吗?
编辑#3更清楚地写道: 我的理解是,该代码在另一个函数内定义
jQuery
,然后返回它。//(function(window,undefined){
var jQuery=(function(){
// Inside this function defines jQuery and return it?
var jQuery=function(selector,context){
return new jQuery(selector,context); //simplified
};
jQuery.xxx=xxx;
//...
return jQuery;
})(); // This executes the inline function and assign `jQuery` with the return value???
//... })(window);
这更像是以下内容:
function define_jQuery(){
// Inside this function defines jQuery and return it?
var jQuery=function(selector,context){
return new jQuery(selector,context); //simplified
};
jQuery.xxx=xxx;
//...
return jQuery;
}
//(function(window,undefined){
var jQuery=define_jQuery(); // This executes the inline function and assign `jQuery` with the return value???
//... })(window);
是否更简单的做法是:
//(function(window,undefined){
var jQuery=function(selector,context){
return new jQuery(selector,context); //simplified
};
jQuery.xxx=xxx;
//...
//... })(window);
:)
- Tats_innit