可以利用js中函數的閉包進行封裝 通常我們可以用下麵這種方法進行一個封裝,這樣在外部引入我們寫的這個js文件後,就可以直接使用export.getUserId()這種形式去調用該函數 上面寫法等價於下麵這一種,下麵可能更易於理解,但都差不多,這樣就進行了封裝然後在其他地方就可以通過window的全局 ...
可以利用js中函數的閉包進行封裝
通常我們可以用下麵這種方法進行一個封裝,這樣在外部引入我們寫的這個js文件後,就可以直接使用export.getUserId()這種形式去調用該函數
(function($, owner) { /* * 中間就可以進行封裝操作 * $就代表mui,owner就代表window的export屬性,就是一個傳值 */ var _userId = 1; function converter(userId){ return +userId; } owner.getUserId = function(){ return converter(_userId); } }(mui, window.export = {}));
上面寫法等價於下麵這一種,下麵可能更易於理解,但都差不多,這樣就進行了封裝
然後在其他地方就可以通過window的全局對象來調用(直接用對象名即可),如:
export.getUserId() //得到的值就是1
因為函數有函數的作用域,所以函數內部定義的變數外部是無法訪問的,那麼要想外部訪問到怎麼辦呢?
這裡可以通過定義一個export對象,將這個對象輸出出去(輸出到window的export對象)
這樣外部就能拿到這個對象里定義的變數(方法)
(function(){ var _userId = 1; var export = {}; function converter(userId){ return +userId; } export.getUserId = function(){ return converter(_userId); } window.export = export; }());
這裡如果直接用export._userId,是拿不到這個屬性的,除非你定義為export._userId,這樣就可以,