原创 javascript設計模式-鏈式編程(3)

模擬簡單的jquery中的鏈式調用 簡單鏈式調用 function Dog(){ this.run = function(){ alert('dog is run...'); return th

原创 javascript設計模式-單體singleton模式(2)

單體(singleton)模式是javascript中最基本但又是最有用的模式之一,它可能比其他任何模式都常用。這種模式提供了一種將代碼組織爲一個邏輯單元的手段,這個邏輯單元中的代碼可以通過單一的變量進行訪問。通過確保單體對象只存在一份

原创 javascript設計模式-建立接口的方式(1)

接口是提供一種以說明一個對象應該有哪些方法的手段。接口是面向對象javascript程序員的工具箱中最有用的工具之一,那麼對於javascript沒有定義接口的概念,我們通過模擬高級程序語言的方式來創建javascript中的接口。

原创 javascript原型-自己實現each方法遍歷多維數組(2)

<script type="text/javascript"> var data = [1, 2, [3, 4]]; Array.prototype.each = function(fn) { try {

原创 javascript設計模式-工廠模式(4)

對於工廠模式,其核心就是爲了生產對象,實現解耦。對於js而言,一個類或對象中往往會包含別的對象,我們創建這樣的成員對象時,可能習慣採用new關鍵字或者構造函數的方式,這樣會導致兩個類之間產生依賴關係,所以我們通常需要工廠模式,創建一個工

原创 javascript設計模式-代理模式(11)

代理(proxy)是一個對象,它可以用來控制對一個對象的訪問。它與另外那個對象實現了同樣的接口,並且會把任何方法調用傳遞到那個對象。代理模式最基本的形式是對訪問進行控制,代理對象所做的不外乎節制對本地的訪問,它不會添加方法或修改方法,也

原创 javascript設計模式-享元模式(10)

享元模式是一種優化模式,它最適合解決因創建類似對象而涉及性能的問題。這種模式在js中尤其有用,因爲複雜的js代碼可能很快就會用光瀏覽器的所有可用內存。通過把大量獨立對象轉化爲少量共享對象,可降低運行web應用程序所需的資源數量 傳統的

原创 javascript設計模式-門面模式(7)

門面模式(facade)一般有兩個作用:簡化類的接口;消除類與使用它的客戶代碼之間的耦合。門面模式的目的是爲了讓開發人員用更簡單的方法調用一些相對複雜或組合的方法,主要就是簡化開發的複雜性,調用一個相對容易的API去調用內部的方法供外界

原创 javascript原型繼承(1)

我們都知道構造函數、原型和實例之間的關係,如果我們讓原型對象等於另一個類型的實例,結果會怎麼樣呢?顯然此時的原型對象將包含一個指向另一個原型的指針,相應的另一個原型中也包含着一個指向另一個構造函數的指針 原型鏈 利用原型讓一個引用類

原创 javascript原型詳解(1)

我們創建的每一個函數都有一個prototype屬性,這個屬性是一個指針,指向一個對象,而這個對象的用途是包含可以由特定類型的所有實例共享的屬性和方法。 原型對象實際就是一個構造函數的實例對象,與普通的實例對象沒有什麼本質上的區分,