learning-javascript
  • Introduction
  • JavaScript ES5 教學
    • 工具準備
    • 流程控制
    • JavaScript 基本特性, 變數
    • Function及Callback function
    • Array及JSON的操作
    • Object, Scope, this
    • ES5中的自訂物件類型-prototype
    • 進階-再講prototype
    • JavaScript重點整理
    • Closure
    • 多個JS檔, module, timer
    • 進階-module pattern
    • 其他
  • 實際應用
    • Server - HTTP request & response
    • Client - 用Fetch跟Server要資料
  • JavaScript ES6 教學
    • 箭頭函數Arrow Function
Powered by GitBook
On this page
  1. JavaScript ES5 教學

進階-module pattern

Previous多個JS檔, module, timerNext其他

Last updated 7 years ago

module相關-1:Mastering the Module Pattern

module pattern經常會與 closure+self invoke function一起使用,

var Module =
(function () {

 var x = "Hello!!"; // I will invoke myself

 return {
   name:"apple",
   test: function(){},
 }
})();

套用closure在module pattern上時, 過程都會返回一個使用{}Object Literal Notation的object.

module相關-2:大型前端專案的架構

整理: 1. 基本上只使用Object Literal Notation var obj={}就可以達到module化,包含member function, member property. 2. 若一般module想要使用/模擬private data/function, 則需要透過closure來達到.

closure與module 透過closure來達到private data/function, 除了運用在常見的module pattern+self invoke function上面, 也可以發生在自訂object內部. 可參考 1. 以及 2. 下面ES6章節的都有提到.

https://toddmotto.com/mastering-the-module-pattern/
https://medium.com/@benzwjian/%E5%A4%A7%E5%9E%8B%E5%89%8D%E7%AB%AF%E5%B0%88%E6%A1%88%E7%9A%84%E6%9E%B6%E6%A7%8B-cc235aacced0
http://stackoverflow.com/questions/1535631/static-variables-in-javascript
link2