jQuery學(xué)習(xí)筆記之總體架構(gòu)
先來(lái)看代碼:
(function (window, undefined) {
//構(gòu)建jQuery對(duì)象
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源碼中沒(méi)有發(fā)現(xiàn)是哪一塊,如果有發(fā)現(xiàn)的.可以告訴我一下
//回調(diào)函數(shù)列表 Callbacks
//異步隊(duì)列 Deferred
//瀏覽器功能測(cè)試 Support
//數(shù)據(jù)緩存 Cache
//屬性操作 Attributes
//隊(duì)列 Queue
//事件系統(tǒng) Event
//選擇器 Sizzle
//Dom遍歷 Traversing
//Dom操作 Manipulation
//樣式操作 CSS
//異步請(qǐng)求 Ajax
//動(dòng)畫 Effects
//坐標(biāo) Offset. 尺寸Dimensions
window.jQuery = window.$ = jQuery;
})(window);
1.這個(gè)就是jQuery源碼的結(jié)構(gòu)了.個(gè)人覺(jué)得還是相當(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.將最大的對(duì)象window當(dāng)做實(shí)參傳遞到函數(shù)中,使得window變成了局部變量,可以大大的縮短查找window的查找時(shí)間,同樣節(jié)省資源.
5,第二個(gè)參數(shù)undefined,是一個(gè)形參,在實(shí)際執(zhí)行的時(shí)候,沒(méi)有獲得參數(shù)賦值,那么系統(tǒng)就會(huì)給他自動(dòng)賦值成undefined.這樣在jQuery的閉包中確保了undefined值的真時(shí)性,因?yàn)閡ndefined在jQuery的外面有可能被篡改掉.盡管這個(gè)篡改的結(jié)果,各種瀏覽器不一樣.
相關(guān)文章
jQuery創(chuàng)建及操作xml格式數(shù)據(jù)示例
這篇文章主要介紹了jQuery創(chuàng)建及操作xml格式數(shù)據(jù),結(jié)合實(shí)例形式分析了jQuery針對(duì)xml格式數(shù)據(jù)的創(chuàng)建、解析、添加等相關(guān)操作技巧,需要的朋友可以參考下2018-05-05
一步一步教你寫一個(gè)jQuery的插件教程(Plugin)
我將會(huì)在下面的例子中一個(gè)一個(gè)的說(shuō)明上面這幾個(gè)條件,做完這些事情后我們就會(huì)創(chuàng)建一個(gè)高亮顯示text的簡(jiǎn)單插件。2009-09-09
jQuery實(shí)現(xiàn)導(dǎo)航樣式布局操作示例【可自定義樣式布局】
這篇文章主要介紹了jQuery實(shí)現(xiàn)導(dǎo)航樣式布局操作,可實(shí)現(xiàn)基于jQuery的用戶自定義樣式布局與屬性動(dòng)態(tài)操作相關(guān)技巧,需要的朋友可以參考下2018-07-07
jquery 實(shí)現(xiàn)滾動(dòng)條下拉時(shí)無(wú)限加載的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇jquery 實(shí)現(xiàn)滾動(dòng)條下拉時(shí)無(wú)限加載的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
jquery修改網(wǎng)頁(yè)背景顏色通過(guò)css方法實(shí)現(xiàn)
在瀏覽一些網(wǎng)站,尤其是一些小說(shuō)網(wǎng)站的時(shí)候,都會(huì)有修改頁(yè)面背景顏色的地方,這個(gè)是用jquery可以做到2014-06-06
基于jquery animate操作css樣式屬性小結(jié)
昨天突然有網(wǎng)友問(wèn)我animate()方法可以來(lái)操作所有css屬性嗎?是的,我告訴他可以的。不過(guò),在此有需要注意點(diǎn)需要大家搞清楚。接下來(lái)通過(guò)本篇文章給大家介紹基于jquery animate操作css樣式屬性小結(jié),對(duì)jquery animate css相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2015-11-11
如何將 jQuery 從你的 Bootstrap 項(xiàng)目中移除(取而代之使用Vue.js)
Bootstrap是網(wǎng)上最流行的前端開(kāi)發(fā)框架。下面通過(guò)本文給大家分享將 jQuery 從你的 Bootstrap 項(xiàng)目中移除的方法,需要的的朋友參考下吧2017-07-07
jQuery實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊彈出漸變層的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊彈出漸變層的方法,jQuery是當(dāng)下最具人氣的JavaScript庫(kù),需要的朋友可以參考下2015-07-07

