jQuery學(xué)習(xí)筆記之總體架構(gòu)
先來看代碼:
(function (window, undefined) {
//構(gòu)建jQuery對象
var document = window.document,
navigator = window.navigator,
location = window.location;
var jQuery = (function () {
var jQuery = function (selector, context) {
return new jQuery.fn.init(selector, context, rootjQuery);
},
_jQuery = window.jQuery;
//............................
//............................
return jQuery; //981行
})();
//工具方法:Utilities;我在jQuery源碼中沒有發(fā)現(xiàn)是哪一塊,如果有發(fā)現(xiàn)的.可以告訴我一下
//回調(diào)函數(shù)列表 Callbacks
//異步隊(duì)列 Deferred
//瀏覽器功能測試 Support
//數(shù)據(jù)緩存 Cache
//屬性操作 Attributes
//隊(duì)列 Queue
//事件系統(tǒng) Event
//選擇器 Sizzle
//Dom遍歷 Traversing
//Dom操作 Manipulation
//樣式操作 CSS
//異步請求 Ajax
//動(dòng)畫 Effects
//坐標(biāo) Offset. 尺寸Dimensions
window.jQuery = window.$ = jQuery;
})(window);
1.這個(gè)就是jQuery源碼的結(jié)構(gòu)了.個(gè)人覺得還是相當(dāng)?shù)那逦陀袟l理的.
2.jQuery的整個(gè)最外層就是一個(gè)自調(diào)用的匿名函數(shù),這樣就可以創(chuàng)建一個(gè)閉包.該閉包中的各種變量,函數(shù)就不會(huì)和閉包外的變量和函數(shù)發(fā)生影響,確保了jQuery的獨(dú)立性,安全性.
3最后一句代碼:window.jQuery = window.$ = jQuery;則是定義了一個(gè)全局變量jQuery和$.并且吧私有變量jQuery的引用賦給了這個(gè)全局變量.
4.將最大的對象window當(dāng)做實(shí)參傳遞到函數(shù)中,使得window變成了局部變量,可以大大的縮短查找window的查找時(shí)間,同樣節(jié)省資源.
5,第二個(gè)參數(shù)undefined,是一個(gè)形參,在實(shí)際執(zhí)行的時(shí)候,沒有獲得參數(shù)賦值,那么系統(tǒng)就會(huì)給他自動(dòng)賦值成undefined.這樣在jQuery的閉包中確保了undefined值的真時(shí)性,因?yàn)閡ndefined在jQuery的外面有可能被篡改掉.盡管這個(gè)篡改的結(jié)果,各種瀏覽器不一樣.
相關(guān)文章
jQuery中serializeArray()與serialize()的區(qū)別實(shí)例分析
這篇文章主要介紹了jQuery中serializeArray()與serialize()的區(qū)別,結(jié)合實(shí)例形式分析了jQuery中serializeArray()與serialize()的具體功能、使用技巧與用法區(qū)別,需要的朋友可以參考下2015-12-12用戶管理的設(shè)計(jì)_jquery的ajax實(shí)現(xiàn)二級聯(lián)動(dòng)效果
下面小編就為大家?guī)硪黄脩艄芾淼脑O(shè)計(jì)_jquery的ajax實(shí)現(xiàn)二級聯(lián)動(dòng)效果。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07jquery ajax 局部無刷新更新數(shù)據(jù)的實(shí)現(xiàn)案例
這篇文章主要對jquery ajax 局部無刷新更新數(shù)據(jù)的實(shí)現(xiàn)案例進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-02-02JQuery獲取可視區(qū)尺寸和文檔尺寸及制作懸浮菜單示例
這篇文章主要介紹了JQuery獲取可視區(qū)尺寸和文檔尺寸及制作懸浮菜單,涉及jQuery針對頁面元素屬性動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-05-05基于jquery的監(jiān)控?cái)?shù)據(jù)是否發(fā)生改變
在實(shí)際開發(fā)中經(jīng)常會(huì)遇到數(shù)據(jù)沒發(fā)生改變是,由于用戶不小心點(diǎn)擊保存,這樣導(dǎo)致數(shù)據(jù)庫的日志增大;還有數(shù)據(jù)填寫好后,忘了添加保存直接關(guān)閉頁面離開。2011-04-04基于jquery實(shí)現(xiàn)人物頭像跟隨鼠標(biāo)轉(zhuǎn)動(dòng)
一款非常乖巧的人物頭像跟隨鼠標(biāo)轉(zhuǎn)動(dòng)效果,在瀏覽器屏幕內(nèi),人物臉龐始終面向鼠標(biāo)轉(zhuǎn)動(dòng),本篇文章給大家介紹基于jquery實(shí)現(xiàn)人物頭像跟隨鼠標(biāo)轉(zhuǎn)動(dòng),有需要的朋友可以參考下2015-08-08