1. 程式人生 > >《JavaScript設計模式與開發實踐》讀書筆記

《JavaScript設計模式與開發實踐》讀書筆記

寫在前面:設計模式這本書讀了一點點,發現這本書並不是死板的去搬運傳統計算機語言的設計模式,而是會結合js特色的行情來加以解讀和拓展,並且在書中所用到的一些程式設計技巧對於平時的開發和學習有很大的借鑑作用。總而言之,這是一本有靈魂的書。所以我打算打打魚,晒晒網,寫點讀書筆記。不一定會完成這篇文章,但是...書我是會基本讀一遍的!(由於開發過程中,基本已經普及es6語法,所以本篇文章裡面我會盡量採用es6的寫法風格)

單例模式

JS的單例模式有別於傳統面嚮物件語言的單例模式,js作為一門無類的語言。我們使用全域性變數的模式來實現單例模式思想。話不多比比,上程式碼:

var getSingle = function (fn) {
    var result;
    return function () {
        return result || (result = fn.apply(this, arguments));
    }
};

const getSingle = (fn) => {
    let result;
    return (...args) => result || (result = fn.apply(this, args));
};

單例模式運用了閉包特性,使用一個外部變數來標誌狀態位,控制目標函式只執行一次。這種程式碼模式和技巧在實際開發中,使用較為頻繁。比如偽類保證某些程式碼邏輯在元件的生命週期中,只調用一次,我們往往會建立一個屬性來控制這種行為。(額,mvvm框架使用多了,其實弱化了這一模式的運用場景,不是沒用,而是被mvvm整合進去了)。(運用場景後續留意補充)

策略模式