第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
將觀察者都搞在一個(gè)集合中,當(dāng)被觀察者發(fā)生變化,就直接找到這個(gè)集合,并運(yùn)行其中的函數(shù)。
再擴(kuò)展一下:
可能有很多被觀察者,每個(gè)被觀察者都對(duì)應(yīng)一個(gè)觀察者集合,所以我們需要一個(gè)‘池’ 來(lái)存儲(chǔ)這些集合。那么 鍵值對(duì) 的格式就很符合。 { 被觀察者1:[觀察者集合] , 被觀察者2:[觀察者集合]....}
回調(diào)可以實(shí)現(xiàn)異步

最新回答 / 菜狗
那里面的self本身不是window,你調(diào)試的時(shí)候顯示window是因?yàn)閏hrome自己本身把window存在了一個(gè)叫self的變量上,原來(lái)的里面的self值已經(jīng)return給外面的cbs了。。。= =不執(zhí)行示例代碼直接打印self也是window
關(guān)于slice感覺有點(diǎn)誤解大家,并不是因?yàn)槠ヅ涞慕Y(jié)果是數(shù)組,而是jquery原型上封裝了slice方法
“除此之外類一的所有方法都是拷貝到當(dāng)前實(shí)例對(duì)象上。類二則是要通過scope連接到原型鏈上查找,這樣就無(wú)形之中要多一層作用域鏈的查找了” 這句話啥意思
$.data()和.data()方法雖然大體的意思一樣,但是2個(gè)接口在處理上卻有差別,mark。
javascript對(duì)象與DOM對(duì)象的相互引用易產(chǎn)生內(nèi)存泄漏。
為了避免內(nèi)存泄漏,我們要盡量避免 引用數(shù)據(jù)(這里的引用數(shù)據(jù)可以說是javascript對(duì)象) 直接依附在DOM對(duì)象上。
注意:javascript中的Array對(duì)象的indexOf()方法,如果要檢索的字符串值沒有出現(xiàn),則該方法返回 -1, 返回-1,返回-1 ?。?!
once 表示:遍歷完列表后,立即將列表清空。
定義一個(gè)函數(shù)(對(duì)象),該函數(shù)的每一個(gè)實(shí)例內(nèi)部存在一個(gè)數(shù)組,這個(gè)數(shù)組包含了所有觀察者。實(shí)例中的add remove fire等方法都是對(duì)這個(gè)數(shù)組進(jìn)行操作。
‘通過回調(diào)函數(shù)callback返回的ture/false的布爾值結(jié)果就可以來(lái)判斷當(dāng)前是否要強(qiáng)制退出循環(huán)’,這樣做的好處:
提高性能
為什么呢?
比如我們要把包含5個(gè)<li>的jQuery對(duì)象中的前三個(gè)li元素隱藏。
兩種方法:
1 $fiveLi.each(function(index,ele){if(index <3){$(ele).hide()}});//這樣會(huì)循環(huán)5次
2 $fiveLi.each(function(index,ele){if(index >= 3){return false} $(ele).hide()}) // 這樣只會(huì)循環(huán)3次
回顧:pushStack做了四件事
1 新建一個(gè)空的jQuery對(duì)象
2 新建的空對(duì)象將參數(shù)(實(shí)際上也是一個(gè)對(duì)象)包含合并
3 將合并后的jQuery對(duì)象的pervObject指向this
4 返回合并后的對(duì)象

再來(lái)分析一下eq()的源碼:
eq()首先解析傳入的參數(shù),該不動(dòng)的不動(dòng),該轉(zhuǎn)換的轉(zhuǎn)換;然后調(diào)用pushStack()函數(shù),并將對(duì)應(yīng)的DOM對(duì)象作為參數(shù)傳入,然后將pushStack()函數(shù)返回的jQuery對(duì)象返回。
注意: 返回的jQuery對(duì)象的prevObject已經(jīng)指向了調(diào)用eq()方法的對(duì)象。比如: aObj.eq(0).prevObject-->aObj
pushStack: function( elems ) {
// Build a new jQuery matched element set
var ret = jQuery.merge( this.constructor(), elems );
// Add the old object onto the stack (as a reference)
ret.prevObject = this;
ret.context = this.context;
// Return new jQueryObject
return ret;
}
大家一定要注意:eq() 方法取出來(lái)的是 jQuery對(duì)象,而get()取出來(lái)的是DOM對(duì)象。
解釋一下這句話(流程解析中的1): ‘因?yàn)閏onstructor是指向構(gòu)造器的,所以這里就等同于調(diào)用jQuery()方法了’
我們知道:
1 jQuery = function(){ return new jQuery.fn.init(); }
2 jQuery.fn = jQuery.prototype = { init:function(){//.....} , constructor:jQuery }
所以 this.constructor() == jQuery()
課程須知
源碼的閱讀不是一蹴而就的,需要大家有一定的功底,比如jQuery的基礎(chǔ)運(yùn)用以及API的熟悉度,除此之外要有牢固的javascript、DOM、CSS的基礎(chǔ)功底,甚至還需要理解常見的設(shè)計(jì)模式、數(shù)據(jù)結(jié)構(gòu)等等。當(dāng)然大家也不要被這些給嚇住了,理解,總是需要一種慢慢的學(xué)習(xí)過程。
老師告訴你能學(xué)到什么?
通過本課程的學(xué)習(xí),您可以由淺入深地剖析jQuery庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)。 其中我們圍繞的重心: 1、設(shè)計(jì)理念 2、結(jié)構(gòu)組織 3、接口設(shè)計(jì) 4、模式運(yùn)用 5、場(chǎng)景套用

微信掃碼,參與3人拼團(tuán)

微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

友情提示:

您好,此課程屬于遷移課程,您已購(gòu)買該課程,無(wú)需重復(fù)購(gòu)買,感謝您對(duì)慕課網(wǎng)的支持!

本次提問將花費(fèi)2個(gè)積分

你的積分不足,無(wú)法發(fā)表

為什么扣積分?

本次提問將花費(fèi)2個(gè)積分

繼續(xù)發(fā)表請(qǐng)點(diǎn)擊 "確定"

為什么扣積分?

舉報(bào)

0/150
提交
取消