-
鏈?zhǔn)降脑砭褪且祷禺?dāng)前操作的上下文查看全部
-
在Callbacks 局部作用域中定義的self,被返回到了全局作用域,這是閉包最普遍的利用狀態(tài)。查看全部
-
異步的事件驅(qū)動(dòng)型回調(diào)函數(shù) event loop 任務(wù)隊(duì)列——工作線程:network DOM事件 setTimeout 讀寫文件 執(zhí)行隊(duì)列 JavaScript是嚴(yán)格的單線程查看全部
-
each迭代器屬于實(shí)用方法,JS功能的實(shí)現(xiàn),類似Underscore.js中的_.each實(shí)現(xiàn)。查看全部
-
讓我聯(lián)想到ES5數(shù)組的遍歷方法查看全部
-
jQuery有很多的遍歷方法,比如find() children() parent() 這里方法在于尋找目標(biāo)DOM對(duì)象,英文表述叫traversing,jQuery文檔中專門有這個(gè)類別。 遍歷方法方面的設(shè)計(jì)特點(diǎn)是:對(duì)象內(nèi)部維護(hù)一個(gè)專門存儲(chǔ)元素集合對(duì)象的堆棧,這是一種數(shù)據(jù)結(jié)構(gòu),目的在于存儲(chǔ)找到的元素集合對(duì)象。有了這個(gè)棧,我們就能輕而易舉地獲知前一次遍歷獲得的元素集合對(duì)象,就是使用prevObject。查看全部
-
看到這里有眼前一亮的感覺。jQuery原來還能這么用。感覺學(xué)習(xí)源碼,能夠讓我更好的學(xué)習(xí)jQuery。jQuery實(shí)例對(duì)象有個(gè)prevObject屬性,我之前還疑惑這個(gè)屬性是干什么用的,現(xiàn)在算是明白了。比如說彼時(shí)通過$(‘h1’)實(shí)例化一個(gè)jQuery對(duì)象,這是個(gè)類數(shù)組,存放著全部的h1元素;然后通過$(‘h1’).eq(0).find(‘a(chǎn)’)找到了文檔中第一個(gè)h1對(duì)象中的a元素,注意此刻返回值還是jQuery實(shí)例。然后$(‘h1’).eq(0).find(‘a(chǎn)’).end(),這步操作結(jié)束后,就等于$(‘h1’).eq(0),也即文檔中第一個(gè)h1對(duì)象。在遍歷和查詢節(jié)點(diǎn)中能夠節(jié)約很多的重復(fù)操作哦。查看全部
-
今天看到了插件接口的設(shè)計(jì)。首先插件可以是jQuery的靜態(tài)方法,又能是jQuery實(shí)例的方法(擴(kuò)展到實(shí)例原型對(duì)象上)。但是這兩種方法的實(shí)現(xiàn)其實(shí)是同一個(gè)方法。 這節(jié)內(nèi)容讓我想到對(duì)象的可擴(kuò)展性,對(duì)于庫(kù)的設(shè)計(jì)者而言,全局對(duì)象的屬性肯定不能隨便擴(kuò)展,只能提供一個(gè)接口,讓其他開發(fā)者有序擴(kuò)展。 另外,插件設(shè)計(jì)的好處。jQuery庫(kù)僅保留核心功能,其余功能的實(shí)現(xiàn)都是通過插件。這樣的好處是:降低框架的復(fù)雜度,同時(shí)又能豐富jQuery庫(kù)的功能。查看全部
-
方法鏈?zhǔn)秸{(diào)用,JavaScript權(quán)威指南中也有相關(guān)說明,method chaining,舉就是jQuery的例子。從方法中返回對(duì)象,然后可以繼續(xù)調(diào)用方法,形成一條方法鏈。這樣的一個(gè)好處就是,少些很多代碼,更貼切開發(fā)者思維。 但是并不是所有的方法都返回對(duì)象,有些方法有自己的返回值,比如html()、hasClass()、get()等方法。之前我還糾結(jié)為什么調(diào)用不同的方法,返回值大多都是jQuery對(duì)象,現(xiàn)在都明白了,是為了方便形成方法鏈啊。我得有意識(shí)地記住大多數(shù)方法里都有return this;這句指令。查看全部
-
實(shí)例共享的方法存儲(chǔ)在jQuery.fn對(duì)象上,此外還有一些靜態(tài)方法,是存放在jQuery函數(shù)對(duì)象上的,比如jQuery.ajax方法。靜態(tài)方法其實(shí)就是jQuery函數(shù)對(duì)象的屬性方法。函數(shù)也是對(duì)象嘛,也能有自己的屬性和方法。同樣為了節(jié)省內(nèi)存,實(shí)例的某些方法是取于靜態(tài)方法。也就是說,別看一個(gè)叫實(shí)例方法,一個(gè)叫靜態(tài)方法,但是它們實(shí)際上是同一個(gè)方法,因?yàn)檎加猛粔K內(nèi)存,只不過傳遞的參數(shù)有些不同罷了。查看全部
-
為了在使用jQuery構(gòu)造函數(shù)實(shí)例化對(duì)象時(shí),讓編程人員少寫個(gè)new,那么就需要在構(gòu)造函數(shù)里面多寫個(gè)new。但是構(gòu)造函數(shù)里面多寫個(gè)new,容易出現(xiàn)循環(huán)遞歸的問題(雖然我沒繞明白),然后就在jQuery.fn對(duì)象上加個(gè)構(gòu)造器init。查看全部
-
實(shí)例共享的方法存儲(chǔ)在jQuery.fn對(duì)象上,此外還有一些靜態(tài)方法,是存放在jQuery函數(shù)對(duì)象上的,比如jQuery.ajax方法查看全部
-
jQuery本質(zhì)上是構(gòu)造函數(shù),但是和一般的構(gòu)造函數(shù)不同的是:不需要使用new 操作符顯式地實(shí)例化對(duì)象(可能就是為了少寫個(gè)new才這樣設(shè)計(jì)的吧);jQuery.fn是存儲(chǔ)所有jQuery實(shí)例共享方法和共享屬性的地兒。比如css方法、toggleClass方法,都在jQuery.fn對(duì)象上存著呢查看全部
-
$(handler);是$(document).ready(handler);的縮寫形式,也是官方推薦的形式查看全部
-
比如 $('h2'); // 獲取頁(yè)面中所有的"<h2>...</h2>"元素 返回的是一個(gè)類數(shù)組對(duì)象。其本質(zhì)是對(duì)象類型,但是又可以使用$('h2')[0];這樣的獲取數(shù)組元素的方式來操作這個(gè)對(duì)象。查看全部
舉報(bào)
0/150
提交
取消