可以利用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,這樣就可以,