第一章:1-5、1-6
第二章:2-1、2-2、2-3
第三章:3-1、3-2、3-5 callbacks解決的問題;3-4 callbacks的應(yīng)用;剩下的把源碼看懂
第二章:2-1、2-2、2-3
第三章:3-1、3-2、3-5 callbacks解決的問題;3-4 callbacks的應(yīng)用;剩下的把源碼看懂
2018-01-16
@liumengyang 一開始看的時(shí)候還在想 當(dāng) otpions存在時(shí)只取了optionsCache[options] , 可是在createOptions這個(gè)函數(shù)中只有optionsCache[options] = {} 沒有對(duì)它進(jìn)行操作啊。過了一會(huì)兒突然想起來在js里 對(duì)象賦值不是單純的值賦值而是地址復(fù)制,所以其實(shí) var object = optionsCache[options] = {}; 指向了同一個(gè)對(duì)象。頓時(shí)體會(huì)到了這行代碼的精妙。
2018-01-05
有兩個(gè)點(diǎn):
1、callbacks.fired() 的用途官方解釋是“Determine if the callbacks have already been called at least once.”檢測(cè)callbacks對(duì)象的回調(diào)列表是否被調(diào)用過至少一次。
2、callbacks.fireWith( [ context ][ ,args ] ) :訪問給定的上下文和參數(shù)列表中的所有回調(diào) -> 將回調(diào)中的this值指向傳入的context參數(shù)。
1、callbacks.fired() 的用途官方解釋是“Determine if the callbacks have already been called at least once.”檢測(cè)callbacks對(duì)象的回調(diào)列表是否被調(diào)用過至少一次。
2、callbacks.fireWith( [ context ][ ,args ] ) :訪問給定的上下文和參數(shù)列表中的所有回調(diào) -> 將回調(diào)中的this值指向傳入的context參數(shù)。
2018-01-04
了解了js的new機(jī)制,以及prototype,prototype.constructor相關(guān)知識(shí)就能明白這里。
課程說的太繞了,反而把人繞暈。況且有些理解,并不一定適合。
課程說的太繞了,反而把人繞暈。況且有些理解,并不一定適合。
2017-12-27
這個(gè)“課程”到這里,感覺組織的不是太好,有點(diǎn)蜻蜓點(diǎn)水走馬觀花的味道。
如果是技術(shù)類文章,這樣還是不錯(cuò)。但作為“課程”,就不夠了,課程目標(biāo)和組織形式都很模糊。
如果是技術(shù)類文章,這樣還是不錯(cuò)。但作為“課程”,就不夠了,課程目標(biāo)和組織形式都很模糊。
2017-12-27
使用了jQuery可以做到以下的幾點(diǎn):
1.簡潔的API
2.優(yōu)雅的鏈?zhǔn)秸{(diào)用
3.強(qiáng)大的選擇器
4.便捷的操作
執(zhí)行一個(gè)動(dòng)畫,需要設(shè)計(jì)的東西:
瀏覽器的兼容、各種屬性的獲取、邏輯流程、性能等等。
1.簡潔的API
2.優(yōu)雅的鏈?zhǔn)秸{(diào)用
3.強(qiáng)大的選擇器
4.便捷的操作
執(zhí)行一個(gè)動(dòng)畫,需要設(shè)計(jì)的東西:
瀏覽器的兼容、各種屬性的獲取、邏輯流程、性能等等。
2017-12-25
DOM對(duì)象容易產(chǎn)生內(nèi)存泄漏是因?yàn)镮E9之前的瀏覽器的DOM和BOM中的對(duì)象就是使用C++以COM對(duì)象的形式實(shí)現(xiàn)的,而又COM對(duì)象的垃圾回收機(jī)制采用的就是引用計(jì)數(shù)策略。所以只有在IE9之前關(guān)于DOM對(duì)象的循環(huán)引用才會(huì)產(chǎn)生內(nèi)存泄漏,IE9以后的DOM不再是使用COM實(shí)現(xiàn)了,換成了真正的JavaScript對(duì)象了
更多關(guān)于內(nèi)存泄漏的可以參考這篇博文:http://blog.csdn.net/ronghuimo/article/details/78872382
更多關(guān)于內(nèi)存泄漏的可以參考這篇博文:http://blog.csdn.net/ronghuimo/article/details/78872382
2017-12-22
有小伙伴說
$.fn.init.prototype = $.fn; 是$.fn.init繼承了$,其實(shí)是不對(duì)的,這里并沒有繼承,唯一作用就是讓$.fn.init.prototype指向$.fn,這樣一來init實(shí)例對(duì)象調(diào)用each方法會(huì)到$.fn.init.prototype上查找,也就是到$.fn上查找,由于$.fn上有each方法所以找到了,可以調(diào)用。如果說真要想$.fn.init繼承$,則應(yīng)該這么寫:
$.fn.init.prototype.prototype = $.fn;或者$.fn.init.prototype = Object.create($.fn)
$.fn.init.prototype = $.fn; 是$.fn.init繼承了$,其實(shí)是不對(duì)的,這里并沒有繼承,唯一作用就是讓$.fn.init.prototype指向$.fn,這樣一來init實(shí)例對(duì)象調(diào)用each方法會(huì)到$.fn.init.prototype上查找,也就是到$.fn上查找,由于$.fn上有each方法所以找到了,可以調(diào)用。如果說真要想$.fn.init繼承$,則應(yīng)該這么寫:
$.fn.init.prototype.prototype = $.fn;或者$.fn.init.prototype = Object.create($.fn)
2017-12-22
new操作主要分為四步:
(1)新創(chuàng)建一個(gè)空對(duì)象{}
(2)建立原型鏈接(新建立的這個(gè)空對(duì)象.__proto__指向構(gòu)造函數(shù).prototype)
(3)this綁定 (當(dāng)前this指向那個(gè)新創(chuàng)建的對(duì)象)
(4)返回對(duì)象(不設(shè)置return的話默認(rèn)返回當(dāng)前新創(chuàng)建的對(duì)象,否則return設(shè)置什么則返回什么)
(1)新創(chuàng)建一個(gè)空對(duì)象{}
(2)建立原型鏈接(新建立的這個(gè)空對(duì)象.__proto__指向構(gòu)造函數(shù).prototype)
(3)this綁定 (當(dāng)前this指向那個(gè)新創(chuàng)建的對(duì)象)
(4)返回對(duì)象(不設(shè)置return的話默認(rèn)返回當(dāng)前新創(chuàng)建的對(duì)象,否則return設(shè)置什么則返回什么)
2017-12-21
$(selector,context)用于返回一個(gè)jq類數(shù)組對(duì)象,這個(gè)對(duì)象如何產(chǎn)生然后返回呢?通過new的方式對(duì)init函數(shù)進(jìn)行構(gòu)造調(diào)用,這個(gè)init函數(shù)我們打算綁在哪呢?打算綁在jquery.prototype上,每次一長串jquery.prototype是不是覺得太長了?那我們用jquery.fn來簡寫吧。于是出現(xiàn)了
jquery.fn=jquery.prototype={
init:function(){}
};
可這樣會(huì)導(dǎo)致重寫原型對(duì)象,jquery.prototype的constructor指向意外丟失了,那我們重新給其設(shè)置一下
constructor指向jquery吧
jquery.fn=jquery.prototype={
init:function(){}
};
可這樣會(huì)導(dǎo)致重寫原型對(duì)象,jquery.prototype的constructor指向意外丟失了,那我們重新給其設(shè)置一下
constructor指向jquery吧
2017-12-21
get方法最好定義在aQuery.prototype上,而不是直接定義在給每個(gè)實(shí)例對(duì)象上,這樣模仿jquery更像些
2017-12-21