jquery源碼學習-初始(1)

來源:互聯網
上載者:User

標籤:style   blog   color   使用   io   ar   cti   div   

  最近幾天一直在研究jquery源碼,由於水平太低看得昏頭轉向。本來理解的也不是很深刻,下面就用自己的想法來說下jquery是如何定義建構函式初始化的。如果有什麼不對的地方,希望個位高手指出。

  首先要瞭解下什麼時候自執行匿名函數 ,它的用途就是 相當於建立一個命名空間,只要把自己所有的代碼寫在這個特殊的函數封裝內,外部不能訪問,除非你允許。

基本格式(function(){    //代碼})();
(function(){  var a = 10;   function $(){     alert(a);   }})();
$(); // 靠居然報錯,因為$方法為局部變數,外部是無法訪問。

尼瑪那要怎麼訪問啊?

其實我們可以把這個$函數掛載到一個全域變數上

(function(){            var a = 10;            function $(){        alert(a);    }        //對外介面,把$掛載到window下        window.$ = $;         })();$(); //果斷列印出10 

 jQuery其實還加上了2個參數

   

(function(window, undefined){        console.log(window);    })(window);第一個參數為window對象。1.其實主要是為了最佳化範圍尋找速度。如果不傳window參數,自執行匿名函數內使用window對象,此範圍並沒有找到window對象,所以會向上一層範圍尋找(即全域)。2.然後可以傳參數可以改名字,詳見壓縮版jQuery庫。第二個參數為undefined。1.傳這個參數主要是有些低版本瀏覽器undefined可以修改var undefined = 10;alert(undefined);ie7,8下彈出10,其他瀏覽器彈出10,所以傳個undefined參數,防止找到範圍外可能被改過的undefined2.與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.