解析JS模塊化

一開始本身一我的寫代碼,實現一個點擊隱藏和顯示事件javascript

function a(){
    document.getElementById('xxx').click = function(){
    }
}
a();

突然某天一位項目加多了開發,他突然寫了一個函數:java

function a(){
    alert('error');
}

問題發生了:
1.悲劇就發生了你寫的函數就say Goodbye了,你老闆就找到你了,由於你的函數被覆蓋了,無模塊化時候全局內容很容易被污染
2.一樣,你同事也找到了你,由於他發現依賴於你事件失效了,一樣,無模塊化時候,代碼執行順序混亂會致使代碼失效模塊化

這時候要改進總體代碼了,因而你的函數代碼就寫成:函數

(function(window,undefined){
    document.getElementById('xxx').click = function(){}
})(window,undefined);

這時候你又多了一位同事,你發現:
你們都寫了同一句代碼:prototype

document.getElementById('xxx').click = function(){}

這樣匿名函數自執行,能夠避免全局污染,可是帶來一個問題,代碼複用和代碼冗餘code

因而你又改進了代碼:事件

(function(window,undefined){
   var $ = function(){
   }
   $.prototype={
       a:function(){
           document.getElementById('xxx').click = function(){}
       }
   }
   window.$ = new $();

})(window,undefined);

$.a();

這樣解決了複用的問題,可是全局污染的問題依舊存在。只能經過人爲來避免了。ip

相關文章
相關標籤/搜索