jquery-1.9.1源碼分析-1

來源:互聯網
上載者:User

新手學習,請大神指點。
想提高自己的js水平,又不知道怎麼去做,讀jquery源碼據說是js水平從低級向中級前進的一種方法。
之所以分析jquery-1.9.1版本是我在網上找到有人中文翻譯的檔案,讀起來方便。
廢話不多說了,今天就先開個頭。
我們開啟jquery檔案首先看到的代碼是:
(function(function(window,undefined){
            //jquery代碼
})(window);

這是一個匿名函數,第一個括弧定義了匿名函數,第二個括弧是調用該匿名函數,並傳入參數。
什麼是匿名函數,匿名函數就是沒有函數名的函數。
匿名函數的建立有兩種方式:一種是上面的形式
如:
(function(function(a){  
alert(a);}//輸出2
)(2);
另一種是:
var squer=function(a){
              alert(a);
      }

匿名函數的最大作用是建立閉包,閉包說白了就是函數的嵌套,內層的函數可以使用外層函數的所有變數,即使外層函數已經執行完了。
如:
(function() { 
var foo = 10; 
var bar = 2; 
baz = function() { 
return foo * bar; 
}; 
})(); 
baz();

window參數,傳入window參數使參數由全域變數變為局部變數,當jquery的window對象時不需要退到頂層範圍,提高了效率,傳入window對象可以壓縮代碼 :
(function(a,b){})(window)

傳入undefined對象,為了相容老版本的瀏覽器,不要對window.undefined傳入形參,undefined會改變。

jquery有些什麼 
總體架構:
(function(window,undefined){
構造jquery對象
callbacks回呼函數
選取器
屬性
篩選
文檔處理
css
事件
效果
Ajax
工具
deferred

})(window);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.