<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] # 寫在前面:   一個文件就是一個模塊。   另外本文中的示例代碼需要在node.js環境中方可正常運行,否則將出現錯誤。事實上ES6已經出現了模塊規范,如果使用ES6的模塊規范是無需node.js環境的。因此,需要將commonJS規范和ES6的模塊規范區分開來。 # 一、為什么制定CommonJS規范?   在后端,JavaScript的規范遠遠落后并且有很多缺陷,這使得難以使用JavaScript開發大型應用。比如: 1. 沒有模塊系統 2. 標準庫較少 3. 沒有標準接口 4. 缺乏包管理系統 5. 列表內容   CommonJS規范的提出,主要是為了彌補JavaScript沒有標準的缺陷,已達到像Python、Ruby和Java那樣具備開發大型應用的基礎能力,而不是停留在開發瀏覽器端小腳本程序的階段。 # 二、CommonJS模塊規范   CommonJS模塊規范主要分為三部分:模塊引用、模塊定義、模塊標識。 ## 1、模塊引用   如果在a.js文件中使用如下語句 ``` var math=require('math'); ```   意為使用require()方法,引入math模塊,并賦值給變量math。事實上,命名的變量名和引入的模塊名不必相同,就像這樣: ``` var Math=require('math'); ```   賦值的意義在于,a.js中將僅能識別Math,因為這是已經定義的變量,并不能識別math,因為math沒有定義。 ### 帶路徑和不帶路徑   上面例子中require的參數僅僅是模塊名字的字符串,沒有帶有路徑,引用的是a.js所在當前目錄下的node_modules目錄下的math模塊。如果當前目錄沒有node_modules目錄或者node_modules目錄里面沒有安裝math模塊,便會報錯。   如果要引入的模塊在其他路徑,就需要使用到相對路徑或者絕對路徑,例如: ``` var add=require('./add.js') ```   上面例子中引入了當前目錄下的add.js文件,并賦值給add變量。 ## 2、模塊定義 ``` module對象:在每一個模塊中,module對象代表該模塊自身。 export屬性:module對象的一個屬性,它向外提供接口。 ``` 仍然采用上一個示例,假設add.js中的代碼如下: ``` function add(num1,num2){ alert(num1+num2); } ```   盡管a.js文件引入了add.js文件,前者卻仍然無法使用后者中的add函數,在a.js文件中add(3,5)這樣的代碼會報錯,提示add不是一個函數。   add.js中的函數要能被其他模塊使用,就需要暴露一個對外的接口,export屬性用于完成這一工作。將add.js中代碼改為如下: ``` exports.add=function (num1,num2){ alert(num1+num2); } ```   a.js文件就可以正常調用add.js中的方法,例如add.add(3,5)這樣的調用能夠正常執行,前一個add意為本文件中add變量代表的模塊,后一個add是引入模塊的add方法。 ## 3、模塊標識 模塊標識指的是傳遞給require方法的參數,必須是符合小駝峰命名的字符串,或者以 . 、.. 、開頭的相對路徑,或者絕對路徑。 # 三、CommonJS模塊規范的好處 CommonJS模塊規范很好地解決變量污染問題,每個模塊具有獨立空間,互不干擾,命名空間等方案與之相比相形見絀。 CommonJS規范定義模塊十分簡單,接口十分簡潔。 CommonJS模塊規范支持引入和導出功能,這樣可以順暢地連接各個模塊,實現彼此間的依賴關系。
                  <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>

                              哎呀哎呀视频在线观看