




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、6-模塊與模式私有/公開字段、模塊、揭示模塊2015 Spring, 本章內(nèi)容 JavaScript中的公有/私有字段 模塊模式 揭示模塊模式 揭示原型模式 單例模式公有/私有字段使用函數(shù)作用域公有/私有字段 每個(gè)變量被定義為: 在全局作用域(公有) 在函數(shù)作用域(私有)var global = 5;function myFunction() var private = global;function innerFunction()var innerPrivate = private;公有/私有字段 演示模塊模式隱藏成員優(yōu)缺點(diǎn) 優(yōu)點(diǎn): 模塊化代碼至可重用對(duì)象 變量/函數(shù)不在全局命名空間中 只暴
2、露公有成員 缺點(diǎn): 不易擴(kuò)展 調(diào)試有問題模塊模式:結(jié)構(gòu) 結(jié)構(gòu):var module = (function () /私有變量/私有函數(shù)return /公有成員someFunc: function() ,anotherFunc: function() ;();模塊模式:示例var controls = (function () /hidden members function formatResult(name, value) / /visible members return Calculator: function (name) var result; result = 0; this.ad
3、d = function (x) / ; this.subtract = function (x) /; this.showResult = function () / ; ;();var calc = new controls.Calculator(First);calc.add(7);calc.showResult();模塊模式:示例var controls = (function () /hidden members function formatResult(name, value) / /visible members return Calculator: function (nam
4、e) var result; result = 0; this.add = function (x) / ; this.subtract = function (x) /; this.showResult = function () / ; ;();var calc = new controls.Calculator(First);calc.add(7);calc.showResult();模塊模式:示例var controls = (function () /hidden members function formatResult(name, value) / /visible member
5、s return Calculator: function (name) var result; result = 0; this.add = function (x) / ; this.subtract = function (x) /; this.showResult = function () / ; ;();var calc = new controls.Calculator(First);calc.add(7);calc.showResult();模塊模式:概要 模塊模式提供了變量和函數(shù)的封裝 提供了加入可見性(公有/私有)到成員的方式 每個(gè)對(duì)象實(shí)例在內(nèi)存中創(chuàng)建新的函數(shù)拷貝模塊模式
6、演示揭示模塊模式揭示最關(guān)注的成員揭示模塊模式:優(yōu)缺點(diǎn) 優(yōu)點(diǎn): 模塊化代碼到可重用對(duì)象中 變量/函數(shù)從全局命名空間取出 只暴露可見成員 清潔方式來暴露成員 易于改變成員私有性 缺點(diǎn): 不易擴(kuò)展 調(diào)試有問題 難以為測(cè)試來仿制隱藏對(duì)象揭示模塊模式:結(jié)構(gòu) 結(jié)構(gòu):var module = (function() /hidden variables /hidden functions return /visible memberssomeFunc: referenceToFunctionanotherFunc: referenceToOtherFunction;();揭示模塊模式:示例var contro
7、ls = (function () /hidden function function formatResult(name, value) / var Calculator = (function () var Calculator = function (name) / ; Ctotype.add = function (x) / ; Ctotype.subtract = function (x) / ; Ctotype.showResult = function () / ; return Calculator;
8、 (); return Calculator: Calculator ;();var calc = new controls.Calculator(First);揭示模塊模式:示例var controls = (function () /hidden function function formatResult(name, value) / var Calculator = (function () var Calculator = function (name) / ; Ctotype.add = function (x) / ; Ctot
9、ype.subtract = function (x) / ; Ctotype.showResult = function () / ; return Calculator; (); return Calculator: Calculator ;();var calc = new controls.Calculator(First);揭示模塊模式:示例var controls = (function () /hidden function function formatResult(name, value) / var Calculator = (function (
10、) var Calculator = function (name) / ; Ctotype.add = function (x) / ; Ctotype.subtract = function (x) / ; Ctotype.showResult = function () / ; return Calculator; (); return Calculator: Calculator ;();var calc = new controls.Calculator(First);揭示模塊模型:概述 模塊模型提供變量和
11、函數(shù)的封裝 提供了加入可見性(公有/私有)到成員的方式 擴(kuò)展對(duì)象困難,因沒有使用原型揭示模塊模式 演示揭示原型模式揭示最關(guān)注的成員揭示原型模式:優(yōu)缺點(diǎn) 優(yōu)點(diǎn): 模塊化代碼到可重用對(duì)象中 變量/函數(shù)從全局命名空間取出 只暴露可見成員 函數(shù)立即加載入內(nèi)存 可擴(kuò)展 缺點(diǎn): this棘手 構(gòu)造器從原型分離揭示原型模式:結(jié)構(gòu) 結(jié)構(gòu):var Constructor = function () /constructor defined hereCtotype = (function() /hidden variables /hidden functions return /exp
12、osed memberssomeFunc: pointerToSomeFuncanotherFunc: pointerToAnotherFunc;();揭示模塊模式:示例var Calculator = function (name) / ;Ctotype = (function () var add, subtract, showResult, formatResult; add = function (x) / ; subtract = function (x) / ; showResult = function () / ; formatResult = fun
13、ction (name, value) / ; return add: add, subtract: subtract, showResult: showResult ;();var calc = new Calculator(First);揭示原型模型:概述 模塊模型提供變量和函數(shù)的封裝 提供了加入可見性(公有/私有)到成員的方式 提供可擴(kuò)展能力揭示原型模式 演示單例模式單一對(duì)象統(tǒng)治全部!Singleton單例模式:結(jié)構(gòu) 結(jié)構(gòu):var module = function() var instance, getInstance; return getInstance: function() if(!instance) instance = new Instance(); return instance; ;();單例模式:示例var controls = function () var Calculator, calculatorInstance; Calculator = (function () function Calculator() / return Calculator; (); return get
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 南極科考站特種供暖設(shè)備租賃與能源管理咨詢合同
- 律師事務(wù)所助理案件跟蹤與反饋協(xié)議
- 美團(tuán)閃購(gòu)業(yè)務(wù)代運(yùn)營(yíng)與數(shù)據(jù)安全保障合同
- 節(jié)慶活動(dòng)旅游線路地接服務(wù)及市場(chǎng)推廣合同
- 堅(jiān)果炒貨原料采購(gòu)價(jià)格動(dòng)態(tài)調(diào)整協(xié)議
- 海外出口貨物清關(guān)與全球物流配送委托管理協(xié)議
- 網(wǎng)紅燒烤品牌授權(quán)與市場(chǎng)推廣合作合同
- 智能家居產(chǎn)品數(shù)據(jù)安全保護(hù)補(bǔ)充協(xié)議
- 2024年高考語文一輪復(fù)習(xí)第四編寫作專題三微案一選材用材學(xué)案含解析
- 2024-2025學(xué)年高中歷史第二單元第8課第二次工業(yè)革命教案含解析新人教版必修2
- 小品搞笑大全劇本完整-搞笑小品劇本:《四大才子》
- 腸結(jié)?。ú煌耆阅c梗阻)中醫(yī)診療方案(試行)
- 肩周炎的康復(fù)PPT通用課件
- GB/T 328.5-2007建筑防水卷材試驗(yàn)方法第5部分:高分子防水卷材厚度、單位面積質(zhì)量
- GB/T 15970.6-2007金屬和合金的腐蝕應(yīng)力腐蝕試驗(yàn)第6部分:恒載荷或恒位移下預(yù)裂紋試樣的制備和應(yīng)用
- 案款收款賬戶確認(rèn)書
- 9-馬工程《藝術(shù)學(xué)概論》課件-第九章(20190403)【已改格式】.課件電子教案
- 施工現(xiàn)場(chǎng)建筑垃圾處置專項(xiàng)方案
- 歡迎新同學(xué)幼兒園中小學(xué)開學(xué)第一課入學(xué)準(zhǔn)備ppt
- (整理)柴油發(fā)電機(jī)的檢修
- 2021年肇慶市端州區(qū)華佗醫(yī)院醫(yī)護(hù)人員招聘筆試試題及答案解析
評(píng)論
0/150
提交評(píng)論