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

