JacaScript 私有變量(四)增強(qiáng)的模塊模式

有人進(jìn)一步改進(jìn)了模塊模式畅涂,即在返回對(duì)象之前加入對(duì)其增強(qiáng)的代碼霜运。這種增強(qiáng)的模塊模式適合那些單例必須是某種類型和的實(shí)例宛琅,同時(shí)還必須添加某些屬性和(或)方法對(duì)其加以增強(qiáng)的情況橘沥。

var singleton = function() {
    // 私有變量和私有函數(shù)
    var privateVariable = 10;

    function privateFunction() {
        return false;
    }

    // 創(chuàng)建對(duì)象
    var object = new CustomType();

    // 添加特權(quán)/公有屬性和方法
    object.publicProperty = true;

    object.publicMethod = function() {
        privateVariable++;
        return privateFunction();
    }

    return object;
}

如果 application 對(duì)象必須是 BaseComponent (不用去關(guān)心 BaseComponent 代碼是如何實(shí)現(xiàn)的) 實(shí)例:


var application = function() {
    // 私有變量和函數(shù)
    var components = new Array();

    // 初始化
    components.push(new BaseComponent());

    // 創(chuàng)建 application 的一個(gè)副本
    var app = new BaseComponent();

    app.getComponentCount = function() {
        return components.length;
    }

    app.registerComponent: function(component) {
        if(typeof component == "object") {
            components.push(component);
        }
    }

    // 公共
    return app;
}();

在這個(gè)重寫(xiě)后的應(yīng)用程序(application)單例中,首先也是像前面例子中一樣定義了私有變量夯秃。主要不同之處在于命名變量 app 的創(chuàng)建過(guò)程,因?yàn)樗仨毷?BaseComponent 的實(shí)例痢艺。

這個(gè)實(shí)例實(shí)際上是 application 對(duì)象的局部變量版仓洼。此后,我們又為 app 對(duì)象添加了能夠訪問(wèn)私有變量的公有方法堤舒。

最后一步是返回 app 對(duì)象色建,結(jié)果仍然是將它賦值給全局變量 application。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末舌缤,一起剝皮案震驚了整個(gè)濱河市箕戳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搬男,死亡現(xiàn)場(chǎng)離奇詭異缘缚,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)邢羔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)荸百,“玉大人囚似,你說(shuō)我怎么就攤上這事剩拢。” “怎么了饶唤?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵徐伐,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我募狂,道長(zhǎng)办素,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任熬尺,我火速辦了婚禮摸屠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘粱哼。我一直安慰自己季二,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布揭措。 她就那樣靜靜地躺著胯舷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绊含。 梳的紋絲不亂的頭發(fā)上桑嘶,一...
    開(kāi)封第一講書(shū)人閱讀 49,166評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音躬充,去河邊找鬼逃顶。 笑死,一個(gè)胖子當(dāng)著我的面吹牛充甚,可吹牛的內(nèi)容都是我干的以政。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼伴找,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼盈蛮!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起技矮,我...
    開(kāi)封第一講書(shū)人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤抖誉,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后衰倦,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體袒炉,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年樊零,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了梳杏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖十性,靈堂內(nèi)的尸體忽然破棺而出叛溢,到底是詐尸還是另有隱情,我是刑警寧澤劲适,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布楷掉,位于F島的核電站,受9級(jí)特大地震影響霞势,放射性物質(zhì)發(fā)生泄漏烹植。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一愕贡、第九天 我趴在偏房一處隱蔽的房頂上張望草雕。 院中可真熱鬧,春花似錦固以、人聲如沸墩虹。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)诫钓。三九已至,卻和暖如春篙螟,著一層夾襖步出監(jiān)牢的瞬間菌湃,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工遍略, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留惧所,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓绪杏,卻偏偏與公主長(zhǎng)得像纯路,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子寞忿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)顶岸,斷路器腔彰,智...
    卡卡羅2017閱讀 134,601評(píng)論 18 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,527評(píng)論 25 707
  • 單例模式(SingletonPattern)一般被認(rèn)為是最簡(jiǎn)單、最易理解的設(shè)計(jì)模式辖佣,也因?yàn)樗暮?jiǎn)潔易懂霹抛,是項(xiàng)目中最...
    成熱了閱讀 4,227評(píng)論 4 34
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法卷谈,內(nèi)部類的語(yǔ)法杯拐,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,587評(píng)論 18 399
  • apt-get install pigz 壓縮: tar cvf - 目錄名 | pigz -9 -p 24 > ...
    殘風(fēng)疏影閱讀 1,053評(píng)論 0 0