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

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

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

再來分析一下eq()的源碼:
eq()首先解析傳入的參數(shù),該不動的不動,該轉(zhuǎn)換的轉(zhuǎn)換;然后調(diào)用pushStack()函數(shù),并將對應(yīng)的DOM對象作為參數(shù)傳入,然后將pushStack()函數(shù)返回的jQuery對象返回。
注意: 返回的jQuery對象的prevObject已經(jīng)指向了調(diào)用eq()方法的對象。比如: 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() 方法取出來的是 jQuery對象,而get()取出來的是DOM對象。
解釋一下這句話(流程解析中的1): ‘因為constructor是指向構(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ǔ)運用以及API的熟悉度,除此之外要有牢固的javascript、DOM、CSS的基礎(chǔ)功底,甚至還需要理解常見的設(shè)計模式、數(shù)據(jù)結(jié)構(gòu)等等。當(dāng)然大家也不要被這些給嚇住了,理解,總是需要一種慢慢的學(xué)習(xí)過程。
老師告訴你能學(xué)到什么?
通過本課程的學(xué)習(xí),您可以由淺入深地剖析jQuery庫的設(shè)計與實現(xiàn)。 其中我們圍繞的重心: 1、設(shè)計理念 2、結(jié)構(gòu)組織 3、接口設(shè)計 4、模式運用 5、場景套用

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

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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

本次提問將花費2個積分

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

為什么扣積分?

本次提問將花費2個積分

繼續(xù)發(fā)表請點擊 "確定"

為什么扣積分?

舉報

0/150
提交
取消