以下轉(zhuǎn)自http://miokafe.com,介紹了jQuery的部分原理和實(shí)現(xiàn),對(duì)理解jQuery有很大幫助.
jQuery是個(gè)出色的javascript庫(kù),最近結(jié)合它寫javascript,看了下源碼。
先從整體、全局的看,jQuery的源碼幾乎都在下面的代碼中:
第一個(gè)括號(hào)里面是個(gè)匿名函數(shù),第二個(gè)括號(hào)表示馬上執(zhí)行第一個(gè)括號(hào)里面的代碼。
首先明白,javascript里面是沒(méi)有命名空間的,要保證你的javascript函數(shù)、對(duì)象與其他的不沖突,這里用了javascript的一個(gè)技巧:你的所有javascript函數(shù)、對(duì)象都在一個(gè)匿名函數(shù)里面定義,確保了所定義的函數(shù)、對(duì)象的有效范圍,起到了命名空間的作用。既然作用范圍在這個(gè)匿名函數(shù)中,怎么被別人使用呢?下面看它的下面代碼:

var jQuery = window.jQuery = function(selector, context)
{
//……
};
這里讓jQuery庫(kù)中最重要的對(duì)象jQuery成為了window對(duì)象的一個(gè)屬性,這樣就可以在其他地方像使用document(document也是window的一個(gè)屬性)一樣使用jQuery了。也許使用過(guò)jQuery的朋友驚訝-我沒(méi)有使用jQuery對(duì)象,一直使用$的。沒(méi)錯(cuò),那是jQuery的同名對(duì)象:
window.$ = jQuery;
現(xiàn)在明白了吧。