jQuery1.0原始碼分析之window.undefined(一)

來源:互聯網
上載者:User

 

要想通讀jQuery的原始碼並非易事。

最新的jQuery版本現在是v1.6.4,未壓縮版一共是9000+行左右。即使是javascript很熟悉的程式員讀起來也會很吃力,jQuery整個架構設計的很巧妙,錯綜複雜。

 

吾等小菜更是一下子很難讀懂。所以,我建議可以先從jQuery1.0版本開始閱讀,1.0版的代碼不多,1800+行左右,注釋很好。函數也不是很複雜,很容易理解。

 

讀懂1.0版本以後,可以選擇一個1.2.6來讀,然後是1.3.2,或者是1.4.2,最後有時間來看1.6.x版本的代碼。

 

 

jQuery1.0未壓縮的代碼可以在這裡下載:

 

http://code.jquery.com/jquery-1.0.js

 

 

 

// Global undefined variable 

window.undefined = window.undefined; 

 

這句代碼是什麼意思呢?查閱了很多文檔,才知道。

早期的瀏覽器undefined並不是全域變數,也就是說你不可以寫像下面的代碼來判斷一個變數是不是undefined

 

 

if (a == undefined) { 

    alert('a is undefined!'); 

 

你必須寫成

 

if (typeof a == 'undefined') { 

    alert('a is undefined!'); 

 

這樣判斷很麻煩的。所以window.undefined = window.undefined這句代碼就是把undefined設為全域變數。

 

window本來是沒有undefined屬性的,所以window.undefined的值就是undefined,把undefined賦值給window.undefined屬性,undefined就變成全域變數了。

 

 

現在的瀏覽器都沒有這個問題了,估計這個是針對IE 6以前的瀏覽器。

 


作者 baozhifei

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.