我看到這個代碼(explicly它在jQuery的,有修改)內聯函數調用有什麼好處?
(function(window,undefined){
var jQuery=(function(){
var jQuery=something;
jQuery.xxx=xxx;
//...
return jQuery;
})();
//...
window.jQuery=window.$=jQuery;
})(window);
雖然我知道在一個內聯函數調用可以清楚地定義變量範圍包裝代碼,我不明白的
好處- 傳遞
window
用參數,而不是直接使用它, - 由未定義參數得到的
undefined
一個實例,並且還 - 限定
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);
Hiya,http://ejohn.org/apps/workshop/adv-talk/#31 ** and ** http://www.bennadel.com/blog/1838-Wrapping-The-Window-Object- In-A-jQuery-Wrapper.htm應該有所幫助! ':)' –