DOM Event 事件流 事件流分為三個階段:事件捕捉,目標觸發(fā),事件冒泡 事件捕捉 注冊事件類型發(fā)生后,從html到目標節(jié)點的父節(jié)點,會觸發(fā)每一個節(jié)點注冊的捕捉事件。事件...
中介者模式 中介者模式用來接觸對象和對象之間的耦合關(guān)系。假如現(xiàn)在有一堆同父類的對象之間需要相互通信,每個對象之間都相互通信是一個不好的做法。適合的做法是采用中介者模式,每個對...
組合模式 職責鏈模式 組合模式 組合模式將對象組合成樹形結(jié)構(gòu),以表示“部分-整體”的層次結(jié)構(gòu)。 在組合模式的樹形結(jié)構(gòu)中,所有的節(jié)點都類似于繼承了一個抽象類一樣,需要實現(xiàn)同樣名...
發(fā)布訂閱模式 和 觀察者模式 發(fā)布訂閱并不是觀察者模式。但我覺得沒有必要細究這個……同樣的思路不同的寫法而已。另外看了這么久,我還是沒懂訂閱、發(fā)布、觀察這三個詞是什么意思……...
代理模式 代理模式是為一個對象提供一個代用品或占位符,以便控制對它的訪問。 簡單點講,就是我們被希望直接通過操作A對象的,但是直接操作太復(fù)雜了,我們希望對A對象的操作少一點,...
策略模式 我認為的封裝模式,就是封裝一系列方法;這些方法的共同點就是:輸入輸出相同;而我們在不同地條件只是需要簡單地將中間的轉(zhuǎn)換方法(即策略)進行更換,就可以達到不同條件下的...
單例模式 單例(Singleton)模式的作用讓某一個類始終只擁有一個實例,即每次通過構(gòu)造函數(shù)構(gòu)造的對象始終是同一個。 單例模式的實現(xiàn) 實例掛載構(gòu)造函數(shù) 優(yōu)點:實現(xiàn)簡單缺點:...
JavaScript函數(shù)式編程 函數(shù)式編程的基礎(chǔ)是一等函數(shù)(函數(shù)在js中作為一等公民)、作用域(詞法作用域,動態(tài)作用域)和閉包。函數(shù)式編程的第一個概念是高等函數(shù):高等函數(shù)將函...
chain Underscore支持鏈式調(diào)用;不過要求函數(shù)鏈的開頭要用chain函數(shù)生成封裝對象。看看chain到底做了啥。 chain生成了返回了一個underscore實...
throttle(func, wait, options) 節(jié)流函數(shù),返回一個函數(shù)的節(jié)流版本;所謂節(jié)流版本,就是給需要執(zhí)行的函數(shù)一個執(zhí)行間隔:每隔waitms才執(zhí)行一次fun...
shuffle Fisher-Yates shuffle;官方寫了shuffle使用這種算法在進行隨機亂序。 不過說真的,我沒看懂源碼是怎么實現(xiàn)的;盡管我看懂了Fisher-...
bind函數(shù) 參考:JavaScript深入之bind的模擬實現(xiàn) bind(function, object, *arguments):綁定函數(shù) function 到對象 o...
flatten flatten是用來實現(xiàn)數(shù)組扁平化的,并加入了shallow函數(shù)strict來表示是否只將數(shù)組進行一次扁平化和是否對參數(shù)有嚴格要求。 然而我覺得官方的實現(xiàn)在效...