




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、6-模塊與模式私有/公開字段、模塊、揭示模塊2015 Spring, 本章內(nèi)容 JavaScript中的公有/私有字段 模塊模式 揭示模塊模式 揭示原型模式 單例模式公有/私有字段使用函數(shù)作用域公有/私有字段 每個變量被定義為: 在全局作用域(公有) 在函數(shù)作用域(私有)var global = 5;function myFunction() var private = global;function innerFunction()var innerPrivate = private;公有/私有字段 演示模塊模式隱藏成員優(yōu)缺點 優(yōu)點: 模塊化代碼至可重用對象 變量/函數(shù)不在全局命名空間中 只暴
2、露公有成員 缺點: 不易擴展 調(diào)試有問題模塊模式:結構 結構: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ù)的封裝 提供了加入可見性(公有/私有)到成員的方式 每個對象實例在內(nèi)存中創(chuàng)建新的函數(shù)拷貝模塊模式
6、演示揭示模塊模式揭示最關注的成員揭示模塊模式:優(yōu)缺點 優(yōu)點: 模塊化代碼到可重用對象中 變量/函數(shù)從全局命名空間取出 只暴露可見成員 清潔方式來暴露成員 易于改變成員私有性 缺點: 不易擴展 調(diào)試有問題 難以為測試來仿制隱藏對象揭示模塊模式:結構 結構: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ù)的封裝 提供了加入可見性(公有/私有)到成員的方式 擴展對象困難,因沒有使用原型揭示模塊模式 演示揭示原型模式揭示最關注的成員揭示原型模式:優(yōu)缺點 優(yōu)點: 模塊化代碼到可重用對象中 變量/函數(shù)從全局命名空間取出 只暴露可見成員 函數(shù)立即加載入內(nèi)存 可擴展 缺點: this棘手 構造器從原型分離揭示原型模式:結構 結構: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ù)的封裝 提供了加入可見性(公有/私有)到成員的方式 提供可擴展能力揭示原型模式 演示單例模式單一對象統(tǒng)治全部!Singleton單例模式:結構 結構: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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 煙臺社區(qū)食堂管理制度
- 學校安全生產(chǎn)應急處置措施
- 海底撈連鎖店管理制度
- 拓展訓練安全管理制度
- 編制外人員管理制度
- 中專藥學管理制度
- 科技公司實驗室安全用品使用計劃
- 建設公司現(xiàn)場管理制度
- 轉(zhuǎn)口貿(mào)易合作協(xié)議
- 2025-2030高檔時裝產(chǎn)業(yè)規(guī)劃研究報告
- 地理-美國 課件-2024-2025學年人教版七年級下冊地理
- GB/T 30134-2025冷庫管理規(guī)范
- 【課件】2025屆高考英語最后一課課件
- 【MOOC】斷層影像解剖學-山東大學 中國大學慕課MOOC答案
- 安全生產(chǎn)標準化管理體系
- QCT302023年機動車用電喇叭技術條件
- 中醫(yī)內(nèi)科學方劑+歌訣
- 分形理論幻燈片
- 汽車租賃后續(xù)服務承諾
- 高風險作業(yè)檢查表
- 外傷性截癱課件
評論
0/150
提交評論