-
除此之外,如果頁面有多個ID相同,也只會返回文檔中第一次出現(xiàn)的元素。IE8之前在針對表單的處理時候,表單的name與id重名,并且name在id之前,則會返回表單元素: <input name="aaron" value="測試"> <div id="aaron">重名</div>查看全部
-
這就是一個標(biāo)準(zhǔn)的立即執(zhí)行的匿名函數(shù)的標(biāo)準(zhǔn)寫法 (function(a,b){ b(a) }('a',function(s){ console.log(s) }) ) js的語法分析器規(guī)則是:當(dāng)“()”作為一個運算符時(權(quán)威指南里有詳細(xì)的說明),里面填的都解釋為表達(dá)式,既然是表達(dá)式就有結(jié)果,這個結(jié)果就是一個無名函數(shù)的指針(或者說引用),這個指針在內(nèi)存的函數(shù)棧里,然后再用“()”運行這個無名函數(shù)。跟先定義一個函數(shù),然后用()調(diào)用它是一個道理。查看全部
-
1:jQuery.data(element,[key],[value]),每一個element都會有自己的一個{key:value}對象保存著數(shù)據(jù),所以新建的對象就算有key相同它也不會覆蓋原來存在的對象key所對應(yīng)的value,因為新對象保存是是在另一個{key:value}對象中 2:$("div").data("a","aaaa") 它是把數(shù)據(jù)綁定每一個匹配div節(jié)點的元素上 源碼可以看出來,說到底,數(shù)據(jù)緩存就是在目標(biāo)對象與緩存體間建立一對一的關(guān)系,整個Data類其實都是圍繞著 thia.cache 內(nèi)部的數(shù)據(jù)做增刪改查的操作。查看全部
-
JS的內(nèi)存泄露,無怪乎就是從DOM中remove了元素,但是依然有變量或者對象引用了該DOM對象。然后內(nèi)存中無法刪除。使得瀏覽器的內(nèi)存占用居高不下。這種內(nèi)存占用,隨著瀏覽器的刷新,會自動釋放。 而另外一種情況,就是循環(huán)引用,一個DOM對象和JS對象之間互相引用,這樣造成的情況更嚴(yán)重一些,即使刷新,內(nèi)存也不會減少。這就是嚴(yán)格意義上說的內(nèi)存泄露了。 所以在平時實際應(yīng)用中, 我們經(jīng)常需要給元素緩存一些數(shù)據(jù),并且這些數(shù)據(jù)往往和DOM元素緊密相關(guān)。由于DOM元素(節(jié)點)也是對象, 所以我們可以直接擴(kuò)展DOM元素的屬性,但是如果給DOM元素添加自定義的屬性和過多的數(shù)據(jù)可能會引起內(nèi)存泄漏,所以應(yīng)該要盡量避免這樣做。 因此更好的解決方法是使用一種低耦合的方式讓DOM和緩存數(shù)據(jù)能夠聯(lián)系起來。 所以我們必須有一種機(jī)制,避免引用數(shù)據(jù)直接依附在DOM對象上,這樣盡量避免內(nèi)存泄漏的產(chǎn)生。jQuery的緩存系統(tǒng)就很好的解決了這一問題。查看全部
-
在構(gòu)造函數(shù)中的return會返回什么呢? 1.可以返回一個對象,那么得到的是返回的對象; 2.其他的都是返回this所指代的對象;查看全部
-
原來原型的作用是實例間的公用...查看全部
-
先順序執(zhí)行,最后執(zhí)行回調(diào)查看全部
-
test查看全部
-
ready與load那一個先執(zhí)行,那一個后執(zhí)行?答案是ready先執(zhí)行,load后執(zhí)行。查看全部
-
這里要區(qū)分2個概念一個是匿名函數(shù),一個是自執(zhí)行。顧名思義,匿名函數(shù),就是沒有函數(shù)名的函數(shù),也就是不存在外部引用。查看全部
-
Write less,Do more !查看全部
-
設(shè)計該模式背后的主要動力是促進(jìn)形成松散耦合。在這種模式中,并不是一個對象調(diào)用另一個對象的方法,而是一個對象訂閱另一個對象的特定活動并在狀態(tài)改變后獲得通知。 總的來說,觀察者模式所做的工作就是在解耦,讓耦合的雙方都依賴于抽象,而不是依賴于具體。從而使得各自的變化都不會影響到另一邊的變化。查看全部
-
觀察者的使用場合 觀察者的使用場合就是:當(dāng)一個對象的改變需要同時改變其它對象,并且它不知道具體有多少對象需要改變的時候,就應(yīng)該考慮使用觀察者模式。 組件開發(fā)為了保證組件可以在不同的項目中都適用,其必須是對其常用功能抽象出來加以實現(xiàn),絕不會包含具體的業(yè)務(wù)邏輯而某一特定的項目使用者在其業(yè)務(wù)場景中使用組件時不可避免的要加入不同場景的業(yè)務(wù)邏輯。 疑問:有的時候,總是分不清楚哪些是功能哪些是業(yè)務(wù)邏輯查看全部
-
The Write Less,Do More(寫更少,做更多),無疑就是jQuery的核心理念,簡潔的API、優(yōu)雅的鏈?zhǔn)?、?qiáng)大的查詢與便捷的操作。查看全部
-
一般選擇器的匹配模式(包括jq1.2之前),都是一個順序的思維方式,在需要遞進(jìn)式匹配時,比如$(‘div span’) 這樣的匹配時,執(zhí)行的操作都是先匹配頁面中div然后再匹配它的節(jié)點下的span標(biāo)簽,之后返回結(jié)果。 Sizzle則采取了相反Right To Left的實現(xiàn)方式,先搜尋頁面中所有的span標(biāo)簽,再在其后的操作中才去判斷它的父節(jié)點(包括父節(jié)點以上)是否為div,是則壓入數(shù)組,否則pass,進(jìn)入下一判斷,最后返回該操作序列。查看全部
舉報
0/150
提交
取消