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

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