1.自定義模組:
具有特定功能的js檔案
將所有的資料和功能都封裝在一個函式的內部
只向外暴露一個包含有n個方法的物件或者函式
模組使用者只需要通過模組暴露的物件呼叫方法來實現相對應的功能
1.利用函式方法自呼叫
/** * Created by lonecloud on 2017/9/10. */ (function (window) { var DEBUG="debug" /** * 列印日誌 * @param args */ function log(args) { console.log(args) } /** * debug 利用閉包 * @param args */ function debug(args) { console.log(DEBUG+args); } /** * 編寫 * @param args */ function write(args) { document.write(args) } window.$ = { log: log, write: write, debug:debug } })(window); //呼叫 $.write("dda") $.debug("dsds") $.log("dsqwd")
2.函式宣告後進行模組化
/** * Created by lonecloud on 2017/9/10. */ function Common(window) { var DEBUG = "debug" /** * 列印日誌 * @param args */ function log(args) { console.log(args) } /** * debug 利用閉包 * @param args */ function debug(args) { console.log(DEBUG + args); } /** * 編寫 * @param args */ function write(args) { document.write(args) } return { log: log, debug: debug, write: write } } //呼叫 var common=Common(window); common.log("121") common.debug(12232) common.write("dadsa")