-
總結(jié):全局變量是魔鬼,?匿名函數(shù)可以有效的保證在頁面上寫入JavaScript,而不會造成全局變量的污染,通過小括號,讓其加載的時候立即初始化,這樣就形成了一個單例模式的效果從而只會執(zhí)行一次。
查看全部 -
工廠模式主要是為了創(chuàng)建對象實例或者類簇(抽象工廠), 關心的是最終產(chǎn)出(創(chuàng)建)的對象, 而不關心創(chuàng)建的過程.
在出現(xiàn)多個類的時候, 每次創(chuàng)建需要找到對應的類往往比較麻煩, 這時候通常使用一個函數(shù)進行封裝來創(chuàng)建所需要的對象,
這樣就無需關注創(chuàng)建這些對象到底依賴哪些基類了, 只要知道有這個函數(shù)就可以了, 通常這個函數(shù)被稱為工廠函數(shù),
這種模式叫簡單工廠模式案例
假設一體育商品店賣器材, 里面有很多體育商品, 及其相關介紹. 當你來到體育用品店買一個籃球及相關介紹時,你只需要問售貨員, 她會幫你找到你所需要的東西.
實現(xiàn)
查看全部 -
// 核心方法
// 回調(diào)系統(tǒng)
// 異步隊列
// 數(shù)據(jù)緩存
// 隊列操作
// 選擇器引
// 屬性操作
// 節(jié)點遍歷
// 文檔處理
// 樣式操作
// 屬性操作
// 事件體系
// AJAX交互
// 動畫引擎
查看全部 -
內(nèi)存泄漏:
????指的是內(nèi)存既不能被使用?又不能被回收
js中常見的內(nèi)存泄漏:
????循環(huán)引用?閉包?DOM插入
關于DOM?引起的:
????DOM對象被引用?同時又被另一個js對象
例子:
JS的內(nèi)存泄露,無怪乎就是從DOM中remove了元素,但是依然有變量或者對象引用了該DOM對象。然后內(nèi)存中無法刪除。使得瀏覽器的內(nèi)存占用居高不下。這種內(nèi)存占用,隨著瀏覽器的刷新,會自動釋放。
???? 而另外一種情況,就是循環(huán)引用,一個DOM對象和JS對象之間互相引用,這樣造成的情況更嚴重一些,即使刷新,內(nèi)存也不會減少。這就是嚴格意義上說的內(nèi)存泄露了。
查看全部 -
一個是ready一個是load,這兩個到底有什么區(qū)別呢?
ready與load誰先執(zhí)行:
大家在面試的過程中,經(jīng)常會被問到一個問題:ready與load那一個先執(zhí)行,那一個后執(zhí)行?答案是ready先執(zhí)行,load后執(zhí)行。DOM文檔加載的步驟:
要想理解為什么ready先執(zhí)行,load后執(zhí)行就要先了解下DOM文檔加載的步驟:(1)?解析HTML結(jié)構(gòu)。 (2)?加載外部腳本和樣式表文件。 (3)?解析并執(zhí)行腳本代碼。 (4)?構(gòu)造HTML?DOM模型。//ready (5)?加載圖片等外部文件。 (6)?頁面加載完畢。//load
從上面的描述中大家應該已經(jīng)理解了吧,ready在第(4)步完成之后就執(zhí)行了,但是load要在第(6)步完成之后才執(zhí)行。
查看全部 -
任何庫與框架設計的第一個要點就是解決命名空間與變量污染的問題。jQuery就是利用了JavaScript函數(shù)作用域的特性,采用立即調(diào)用表達式包裹了自身的方法來解決這個問題。
總結(jié):全局變量是魔鬼,?匿名函數(shù)可以有效的保證在頁面上寫入JavaScript,而不會造成全局變量的污染,通過小括號,讓其加載的時候立即初始化,這樣就形成了一個單例模式的效果從而只會執(zhí)行一次。
查看全部 -
插件接口設計
????擴展功能剝離主體(降低框架的復雜)
jQuery的插件分兩種:
????掛載 jQuery 命名空間下的全局函數(shù),可稱為靜態(tài)方法。
????另一種是jQuery對象級別的方法,即掛在 jQuery 原型下的方法,這樣通過選擇器獲取的jQuery對象實例也能共享該方法。
提供的接口:
? ? $.extend(target, [object1], [objectN])
jQuery.extend({ ????data:function(){}, ????removeData:function(){} }) jQuery.fn.extend({ ????data:function(){}, ????removeData:function(){} })
查看全部 -
鏈式調(diào)用
return this;
查看全部 -
鏈式調(diào)用
return this;
查看全部 -
好巧妙的設計
查看全部 -
兩種實現(xiàn):
一、把所有屬性方法都聲明在構(gòu)造函數(shù)。
二、通過scope連接到原型鏈上查找
查看全部 -
jQuery.noCoonfilct() 無沖突函數(shù)
多庫共存處理
查看全部 -
jquery ready 先加載,load 后加載
查看全部 -
不直接將數(shù)據(jù)緩存綁定在DOM上,而是保存在JS對象中(即內(nèi)存中),內(nèi)存的操作性能顯然比訪問DOM要消耗少。
再通過一種映射關系,將DOM和JS緩存對象關聯(lián)起來,例如,#box的dom元素和js對象obj.box關聯(lián)起來。
查看全部 -
控制好返回值就行。
查看全部
舉報