計(jì)劃:看完這兩篇教程,因?yàn)锳PI已經(jīng)很熟悉了橱野。
jQuery源碼解析(架構(gòu)與依賴模塊)[http://www.imooc.com/learn/172]
理解架構(gòu)
細(xì)節(jié)
$( "input:checked" )
五大塊:選擇器姻锁,DOM操作据悔,事件凿菩,AJAX胳挎,動(dòng)畫
13個(gè)模塊:
立即調(diào)用函數(shù)表達(dá)式
;(function(window,undefined) {
//undefined
})(window)
這里的undefined不是js中的保留字婆廊,只是普普通通的用戶名迅细,可以允許用戶對其賦值
匿名函數(shù)
function ajQuery1(){
show('ajQuery1')
}
// 會(huì)提升,匿名函數(shù)
var ajQuery2 = function(){
show('ajQuery2')
}
//不會(huì)提升淘邻,函數(shù)表達(dá)式
;(function(){
show('ajQuery3')
})()
//匿名函數(shù)調(diào)用
var ajQuery4 = function(){
show('ajQuery4')
}();
//函數(shù)表達(dá)式調(diào)用
類數(shù)組對象
能看明白疯攒,大概意思也能理解,只是不知道實(shí)際中該如何使用
dom文檔加載的步驟
(1) 解析HTML結(jié)構(gòu)列荔。
(2) 加載外部腳本和樣式表文件敬尺。
(3) 解析并執(zhí)行腳本代碼枚尼。
(4) 構(gòu)造HTML DOM模型。//ready
(5) 加載圖片等外部文件砂吞。
(6) 頁面加載完畢署恍。//load
看不懂
noconflict
只要把那兩個(gè)js引入就好,不用在意順序蜻直。
核心模塊
對象的構(gòu)造
是之前看過的盯质,很好理解
分離構(gòu)造器
new:原型與this連接起來
2-1 2-2 2-3 都看不懂
方法鏈?zhǔn)秸{(diào)用
核心是return當(dāng)前的實(shí)例對象this
插件接口
插件分兩種
1、靜態(tài)方法:$.method概而,掛在$的命名空間下呼巷,jquery.extend調(diào)用的時(shí)候上下文指向的是jquery的構(gòu)造器
2、實(shí)例方法:$('').method赎瑰,掛在jquery的原型下王悍,jquery.fn.extend調(diào)用的時(shí)候上下文指向的是jquery構(gòu)造器的實(shí)例對象
看不懂
回溯處理
jquery對象棧
1、end():回到前一個(gè)jquery對象
return this.prevObject || this.constructor(null);
2餐曼、andSelf addBack:在棧中回溯一個(gè)位置压储,把兩個(gè)位置上的元素集組合起來,并把這個(gè)新的源譬、組合之后的元素集推入棧的上方集惋。
不想看了,覺得對現(xiàn)在沒用
jQuery源碼解析(DOM與核心模塊)[http://www.imooc.com/learn/222]