覺得老師對memory的解釋有些歧義,看完了這節(jié)課,我覺得 本例中的memory變量是保存了當(dāng)前的fire函數(shù)的參數(shù),每次添加一個新的觀察者函數(shù),就用當(dāng)前的memory變量作為參數(shù)調(diào)用這個添加的觀察者函數(shù)一次。
2016-11-21
memory = options === 'memory' && data; 我一直以為memory的最終結(jié)果為true或者false,現(xiàn)在我才發(fā)現(xiàn)原來我沒有弄明白 與 的真諦! 假如 options === ‘memory’ 的話,memory = data。 其余情況 memory = false
2016-11-21
隨著后面課程的學(xué)習(xí),發(fā)現(xiàn)jQuery的實現(xiàn)方式跟我想的不一樣啊,我的實現(xiàn)思路就是實現(xiàn)一個被觀察者池,為每一個被觀察者命名;而jQuery則是在函數(shù)內(nèi)部定義一個觀察者數(shù)組,然后使用閉包的方式返回一個對象;如果用我的方法的話,還得額外檢測名字是否重復(fù)。問世間是否有山比此山更高,一山還比一山高啊
2016-11-21
今天又看了一遍,發(fā)現(xiàn)以前對這節(jié)課的理解是錯的?。? 第19行, arguments.callee 指的是setTimeout內(nèi)的函數(shù),指的不是Aaron !! 大家可以添加一句console.log(arguments.callee)試試。
另外我一直思考,為啥要用setTimeout函數(shù),百度得到了這個答案:settimeout的作用機制其實是把函數(shù)加入到全局(window)的空間里的任務(wù)隊列
另外我一直思考,為啥要用setTimeout函數(shù),百度得到了這個答案:settimeout的作用機制其實是把函數(shù)加入到全局(window)的空間里的任務(wù)隊列
2016-11-20
@javaeye 觀察不仔細啊! 明明是 callee 不是 call!
callee返回正在執(zhí)行的函數(shù)本身的引用,它是arguments的一個屬性!
callee返回正在執(zhí)行的函數(shù)本身的引用,它是arguments的一個屬性!
2016-11-20
@小姜姜姜姜 'arguments.callee(List) 這句話可以換成 Aaron(List,callback) 這樣的話就需要每次執(zhí)行25毫秒'
建議不要換,因為如果換了的話,以后我們需要對函數(shù)重命名的話,那我們就得改兩處。
建議不要換,因為如果換了的話,以后我們需要對函數(shù)重命名的話,那我們就得改兩處。
2016-11-20
將觀察者都搞在一個集合中,當(dāng)被觀察者發(fā)生變化,就直接找到這個集合,并運行其中的函數(shù)。
再擴展一下:
可能有很多被觀察者,每個被觀察者都對應(yīng)一個觀察者集合,所以我們需要一個‘池’ 來存儲這些集合。那么 鍵值對 的格式就很符合。 { 被觀察者1:[觀察者集合] , 被觀察者2:[觀察者集合]....}
再擴展一下:
可能有很多被觀察者,每個被觀察者都對應(yīng)一個觀察者集合,所以我們需要一個‘池’ 來存儲這些集合。那么 鍵值對 的格式就很符合。 { 被觀察者1:[觀察者集合] , 被觀察者2:[觀察者集合]....}
2016-11-19
關(guān)于slice感覺有點誤解大家,并不是因為匹配的結(jié)果是數(shù)組,而是jquery原型上封裝了slice方法
2016-11-15
“除此之外類一的所有方法都是拷貝到當(dāng)前實例對象上。類二則是要通過scope連接到原型鏈上查找,這樣就無形之中要多一層作用域鏈的查找了” 這句話啥意思
2016-11-13
javascript對象與DOM對象的相互引用易產(chǎn)生內(nèi)存泄漏。
為了避免內(nèi)存泄漏,我們要盡量避免 引用數(shù)據(jù)(這里的引用數(shù)據(jù)可以說是javascript對象) 直接依附在DOM對象上。
為了避免內(nèi)存泄漏,我們要盡量避免 引用數(shù)據(jù)(這里的引用數(shù)據(jù)可以說是javascript對象) 直接依附在DOM對象上。
2016-11-11