亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
覺得老師對memory的解釋有些歧義,看完了這節課,我覺得 本例中的memory變量是保存了當前的fire函數的參數,每次添加一個新的觀察者函數,就用當前的memory變量作為參數調用這個添加的觀察者函數一次。
memory = options === 'memory' && data; 我一直以為memory的最終結果為true或者false,現在我才發現原來我沒有弄明白 與 的真諦! 假如 options === ‘memory’ 的話,memory = data。 其余情況 memory = false
隨著后面課程的學習,發現jQuery的實現方式跟我想的不一樣啊,我的實現思路就是實現一個被觀察者池,為每一個被觀察者命名;而jQuery則是在函數內部定義一個觀察者數組,然后使用閉包的方式返回一個對象;如果用我的方法的話,還得額外檢測名字是否重復。問世間是否有山比此山更高,一山還比一山高啊
隨著我們的使用,optionsCache會存入所有的可能的參數組合。
今天又看了一遍,發現以前對這節課的理解是錯的??! 第19行, arguments.callee 指的是setTimeout內的函數,指的不是Aaron ??! 大家可以添加一句console.log(arguments.callee)試試。
另外我一直思考,為啥要用setTimeout函數,百度得到了這個答案:settimeout的作用機制其實是把函數加入到全局(window)的空間里的任務隊列
貌似1.8版本之后,load就拋棄了·····只剩下ajax的load了
@javaeye 觀察不仔細?。? 明明是 callee 不是 call!
callee返回正在執行的函數本身的引用,它是arguments的一個屬性!
@小姜姜姜姜 'arguments.callee(List) 這句話可以換成 Aaron(List,callback) 這樣的話就需要每次執行25毫秒'
建議不要換,因為如果換了的話,以后我們需要對函數重命名的話,那我們就得改兩處。
很精妙!self 存在外部引用 + 閉包
將觀察者都搞在一個集合中,當被觀察者發生變化,就直接找到這個集合,并運行其中的函數。
再擴展一下:
可能有很多被觀察者,每個被觀察者都對應一個觀察者集合,所以我們需要一個‘池’ 來存儲這些集合。那么 鍵值對 的格式就很符合。 { 被觀察者1:[觀察者集合] , 被觀察者2:[觀察者集合]....}
回調可以實現異步
關于slice感覺有點誤解大家,并不是因為匹配的結果是數組,而是jquery原型上封裝了slice方法
“除此之外類一的所有方法都是拷貝到當前實例對象上。類二則是要通過scope連接到原型鏈上查找,這樣就無形之中要多一層作用域鏈的查找了” 這句話啥意思
$.data()和.data()方法雖然大體的意思一樣,但是2個接口在處理上卻有差別,mark。
javascript對象與DOM對象的相互引用易產生內存泄漏。
為了避免內存泄漏,我們要盡量避免 引用數據(這里的引用數據可以說是javascript對象) 直接依附在DOM對象上。
課程須知
源碼的閱讀不是一蹴而就的,需要大家有一定的功底,比如jQuery的基礎運用以及API的熟悉度,除此之外要有牢固的javascript、DOM、CSS的基礎功底,甚至還需要理解常見的設計模式、數據結構等等。當然大家也不要被這些給嚇住了,理解,總是需要一種慢慢的學習過程。
老師告訴你能學到什么?
通過本課程的學習,您可以由淺入深地剖析jQuery庫的設計與實現。 其中我們圍繞的重心: 1、設計理念 2、結構組織 3、接口設計 4、模式運用 5、場景套用

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?

舉報

0/150
提交
取消