[No.2] jQuery源碼解析—搭建框架(2)

接著,我們往后來看粒竖。從877-2856行,

都是完成一個(gè)功能几于,就是Sizzle蕊苗。

Sizzle功能就是讓一個(gè)復(fù)雜選擇器的實(shí)現(xiàn)。

它是jQuery中比較難的一部分沿彭,

實(shí)現(xiàn)也比較復(fù)雜朽砰,它也是獨(dú)立的。


然后膝蜈,從2880-3042行锅移,

CallbacksjQuery中的回調(diào)對(duì)象熔掺,

它實(shí)現(xiàn)的功能主要就是通過

回調(diào)對(duì)象去管理函數(shù)饱搏,

(對(duì)函數(shù)的統(tǒng)一管理)。

為什么要統(tǒng)一管理置逻?

因?yàn)樵谧鲩_發(fā)的時(shí)候推沸,

如果說函數(shù)特別多的時(shí)候,

我們管理起來就比較麻煩,

若是有一套很好的方式可以統(tǒng)一管理的話鬓催,

其實(shí)肺素,操作起來就比較容易一些。

我們簡(jiǎn)單地來看看jQuery中是如何做的宇驾,

這就把它們統(tǒng)一的放到了一起倍靡,

除了這種添加方式,

比如說刪除课舍,

還有很多方法塌西,到時(shí)具體說,

所以說這對(duì)函數(shù)的管理還是很有幫助筝尾。


接著捡需,從3043-3183行,

它們實(shí)現(xiàn)的是Deferred筹淫,

延遲對(duì)象作用就是對(duì)異步的統(tǒng)一管理站辉。

JS中很多都是異步的,

比如:定時(shí)器损姜,Ajax饰剥,等待DOM加載...

所以說在這些異步當(dāng)中沒有一個(gè)統(tǒng)一管理,

就會(huì)異步寫得越多摧阅,越復(fù)雜捐川,不容易管理。

但是逸尖,按照我們正常的邏輯思維古沥,

應(yīng)該是先寫的先執(zhí)行,

后寫的后執(zhí)行娇跟,

用延遲對(duì)象是這樣來書寫的岩齿。

jQuery中這樣去寫,

就會(huì)先彈出1苞俘,再彈出2.

從而盹沈,我們可以發(fā)現(xiàn)在jQuery中,

延遲對(duì)象的做法是用回調(diào)去做的吃谣,

先去存乞封,當(dāng)上面那句話觸發(fā)的時(shí)候,

然后岗憋,再去調(diào)存的這個(gè)函數(shù)肃晚,

所以說延遲的原理很簡(jiǎn)單。


接下來仔戈,我們往后來看关串,

從3184-3295行拧廊,它實(shí)現(xiàn)了support

這叫做功能檢測(cè)的方法晋修。

什么是功能檢測(cè)呢吧碾?

這個(gè)就是在我們之前去做瀏覽器判斷時(shí),

判斷是什么瀏覽器墓卦,

執(zhí)行什么不同的操作倦春,

需要得到瀏覽器的信息,

判斷它到底是哪個(gè)版本的落剪。

這種對(duì)之前的開發(fā)都是可以的溅漾,

但是,現(xiàn)在隨著網(wǎng)絡(luò)的發(fā)展著榴,

其實(shí)添履,瀏覽器更新速度是非常之快的,

版本變化得也是非衬杂郑快暮胧,

所以說光是用來判斷瀏覽器版本的話,

其實(shí)问麸,對(duì)我們維護(hù)起來是非常不利的往衷,

但是我們要是用來判斷功能去判斷瀏覽器,

這就比較靠譜了严卖,

因?yàn)橥笊?jí)的瀏覽器它的功能會(huì)被保留的席舍,

所以說這個(gè)功能檢測(cè)是對(duì)瀏覽器發(fā)展是非常有用的。

以后哮笆,我們就不用判斷瀏覽器了来颤,

可以通過功能檢測(cè)判斷不同瀏覽器的版本。

這里稠肘,我找了一個(gè)叫checkOn功能檢測(cè)講講福铅。

其實(shí)在我們寫的一個(gè)input的是復(fù)選或者單選框時(shí),

大部分瀏覽器默認(rèn)的value的是on项阴,

然而滑黔,在老版本的WebKit下的瀏覽器,

它們默認(rèn)的是空环揽,

所以說我們要區(qū)分新老WebKit瀏覽器略荡,

是不是就可以同過這個(gè)方法去判斷了,

這一塊兒歉胶,還有很多功能檢測(cè)汛兜,

咱們到時(shí)候具體講它的時(shí)候再給大家說,

先知道一下它是干嘛的跨扮,就可以了序无。




回看上一集:

原文中此處為鏈接验毡,暫不支持采集

別走開衡创,下集更精彩帝嗡。

喜歡文章的小伙伴,

希望大家多多轉(zhuǎn)發(fā)分享璃氢,

你的分享就是我的動(dòng)力哟玷!

喜歡 分享 or
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市一也,隨后出現(xiàn)的幾起案子巢寡,更是在濱河造成了極大的恐慌,老刑警劉巖椰苟,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抑月,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡舆蝴,警方通過查閱死者的電腦和手機(jī)谦絮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來洁仗,“玉大人层皱,你說我怎么就攤上這事≡剩” “怎么了叫胖?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)她奥。 經(jīng)常有香客問我瓮增,道長(zhǎng),這世上最難降的妖魔是什么哩俭? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任钉赁,我火速辦了婚禮,結(jié)果婚禮上携茂,老公的妹妹穿的比我還像新娘你踩。我一直安慰自己,他們只是感情好讳苦,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布带膜。 她就那樣靜靜地躺著,像睡著了一般鸳谜。 火紅的嫁衣襯著肌膚如雪膝藕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天咐扭,我揣著相機(jī)與錄音芭挽,去河邊找鬼滑废。 笑死,一個(gè)胖子當(dāng)著我的面吹牛袜爪,可吹牛的內(nèi)容都是我干的蠕趁。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼辛馆,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼俺陋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起昙篙,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤腊状,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后苔可,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缴挖,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年焚辅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了映屋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡法焰,死狀恐怖秧荆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情埃仪,我是刑警寧澤乙濒,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站卵蛉,受9級(jí)特大地震影響颁股,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜傻丝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一甘有、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧葡缰,春花似錦亏掀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至怜校,卻和暖如春间影,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背茄茁。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工魂贬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留巩割,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓付燥,卻偏偏與公主長(zhǎng)得像宣谈,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子机蔗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容

  • 1.幾種基本數(shù)據(jù)類型?復(fù)雜數(shù)據(jù)類型?值類型和引用數(shù)據(jù)類型?堆棧數(shù)據(jù)結(jié)構(gòu)? 基本數(shù)據(jù)類型:Undefined蒲祈、Nul...
    極樂君閱讀 5,498評(píng)論 0 106
  • <a name='html'>HTML</a> Doctype作用甘萧?標(biāo)準(zhǔn)模式與兼容模式各有什么區(qū)別? (1)萝嘁、<...
    clark124閱讀 3,456評(píng)論 1 19
  • 在線閱讀 http://interview.poetries.top[http://interview.poetr...
    程序員poetry閱讀 114,269評(píng)論 24 450
  • 以前看新白時(shí),覺得里面的白娘子特別偉大扬卷。覺得她無所不能牙言。反應(yīng)的是自己年幼,對(duì)世界抱著好奇和渴望長(zhǎng)大的心態(tài)怪得。 現(xiàn)在看...
    芙蓉花王閱讀 598評(píng)論 0 2
  • It's just I need to speak to someone. Not someone. You. 我...
    Burritooo閱讀 1,092評(píng)論 2 3