<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 模塊化 之前有提到過模塊化是僅從`js`層面來分析和解決問題的。 ## 無模塊時代 在ajax還未提出之前,js還只是一種“玩具語言”,由[`Brendan Eich`](https://baike.baidu.com/item/Brendan%20Eich)花了不到十天時間發明,用來在網頁上進行表單校驗、實現簡單的動畫效果等等,你可以回想一下那個網頁上到處有公告塊飄來飄去的時代。 這個時候并沒有前端工程師,服務端工程師只需在頁面上隨便寫寫js就能搞定需求。那個時候的前端代碼大概像這樣,代碼簡單的堆在一起,只要能從上往下依次執行就可以了。 ``` var a = 1; if(xx){ //....... } else{ //xxxxxxxxxxx } for(var i=0; i<10; i++){ //........ } element.onclick = function(){ //....... } ``` ## 模塊萌芽時代(了解) 2006年,ajax的概念被提出,前端擁有了主動向服務端發送請求并操作返回數據的能力,隨著Google將此概念的發揚光大,傳統的網頁慢慢的向“富客戶端”發展。前端的業務邏輯越來越多,代碼也越來越多,于是一些問題就暴漏了出來: ### 全局變量的災難 1. 小明定義了 i=1 2. 小剛在后續的代碼里:i=0 3. 小明在接下來的代碼里:if(i==1){...} //悲劇 ### 函數命名沖突 >[success] 項目中通常會把一些通用的函數封裝成一個文件,常見的名字有utils.js、common.js... 1. 小明定義了一個函數:function formatData(){ ? } 2. 小剛想實現類似功能,于是這么寫:function formatData2(){ ? } 3. 小光又有一個類似功能,于是:function formatData3(){ ? } ### 依賴關系不好管理 >[success] b.js依賴a.js,標簽的書寫順序必須是 ``` <script type="text/javascript" src="a.js"></script> <script type="text/javascript" src="b.js"></script> ``` 順序不能錯,也不能漏寫某個。在多人開發的時候很難協調。 ## 模塊化需要解決的問題 從以上的嘗試中,可以歸納出js模塊化需要解決那些問題: 1\. 如何安全的包裝一個模塊的代碼?(不污染模塊外的任何代碼) 2\. 如何唯一標識一個模塊? 3\. 如何優雅的把模塊的API暴漏出去?(不能增加全局變量) 4\. 如何方便的使用所依賴的模塊? 圍繞著這些問題,js模塊化開始了一段艱苦而曲折的征途。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看