JS設計模式之工廠模式

關鍵詞:函數,封裝,

定義

把實現相同功能的代碼放在一個函數中,以后想實現這個功能,只需要執行這個方法就行了-->函數的封裝(低耦合,高內聚)。本質上就是普通函數的封裝。

使用方法

var a=function (name,age) {
    var obj={};
    obj.name=name;
    obj.age=age;
    obj.createJs=function () {
        console.log(this.name+'和'+this.age)
    }
    return obj;
}
var result1=a('js',18);
var result2=a('jss',18);
result1.createJs();
result2.createJs();

工廠模式的意義:

低耦合,高內聚(減少頁面的冗余代碼,提高代碼的利用率)。

這里不得不提面向對象的特點:類的繼承,封裝,多態(重載與重寫)

關于重載和重寫:

重載的定義:函數名相同,函數的參數列表不同(包括參數個數和參數類型),至于返回類型可同可不同。

function a(m){console.log(m)};
function a(m,n){console.log(n+n)};

后臺語言中有兩個同名函數,傳遞一個參數時,會執行第一個函數,傳遞兩個參數時,會執行第二個函數。(這是我的理解,真正的后臺語言不是以這種形式書寫的),在JS中后面的同名函數會把前面覆蓋掉,所以不存在重載。只有類似于重載的功能,如下:

function m(params) {
    if(!params){
        return  undefined;
    }
    return params;
}

重寫:

function Create(name,age) {
    var name='xiaoming';
    this.name=name;
    this.age=age;
    this.createJs=function () {
        console.log(this.name+'是'+this.age)
    }
}
Create.prototype.test=function () {
    console.log(123);
}
var p1=new Create('js',19);
p1.__proto__.test=function () {
    console.log(100)
}
p1.test();//100,子重寫了父的方法;
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 工廠模式類似于現實生活中的工廠可以產生大量相似的商品,去做同樣的事情,實現同樣的效果;這時候需要使用工廠模式。 簡...
    JSUED閱讀 288評論 0 1
  • 工廠模式 現實場景解讀 插畫│綠野悠 首先我們構建這樣一個場景,寶貝與媽媽,當寶貝想要商店里面的一樣東西的時候,他...
    Nodelover閱讀 2,306評論 0 2
  • 工廠模式類似于現實生活中的工廠可以產生大量相似的商品,去做同樣的事情,實現同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 7,854評論 2 17
  • 第5章 引用類型(返回首頁) 本章內容 使用對象 創建并操作數組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,270評論 0 4
  • 1 她的肩膀有歲月的齒輪 她的牙齒也掉了一顆,頭發一個月不染就成花白 她是一個對婚姻對愛情已經麻...
    老壇沉處閱讀 398評論 0 0