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