日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Require的用法及短語 require的用法( 三 )


  • id:字符串,模塊名稱(可選)
  • dependencies: 是我們要載入的依賴模塊(可選) , 使用相對路徑 。,注意是數(shù)組格式
  • factory: 工廠方法,返回一個模塊函數(shù)

Require的用法及短語 require的用法



如果一個模塊不依賴其他模塊,那么可以直接定義在define()函數(shù)之中 。

Require的用法及短語 require的用法



注意:帶 id 和 dependencies 參數(shù)的 define 用法不屬于 CMD 規(guī)范,而屬于 Modules/Transport 規(guī)范 。
CMD與AMD區(qū)別AMD和CMD最大的區(qū)別是對依賴模塊的執(zhí)行時機處理不同,而不是加載的時機或者方式不同 , 二者皆為異步加載模塊 。
AMD依賴前置,js可以方便知道依賴模塊是誰,立即加載;
而CMD就近依賴 , 需要使用把模塊變?yōu)樽址馕鲆槐椴胖酪蕾嚵四切┠K,這也是很多人詬病CMD的一點,犧牲性能來帶來開發(fā)的便利性 , 實際上解析模塊用的時間短到可以忽略 。
現(xiàn)階段的標準
Require的用法及短語 require的用法



ES6標準發(fā)布后,module成為標準 , 標準使用是以export指令導出接口,以import引入模塊 , 但是在我們一貫的node模塊中,我們依然采用的是CommonJS規(guī)范,使用require引入模塊 , 使用module.exports導出接口 。
export導出模塊export語法聲明用于導出函數(shù)、對象、指定文件(或模塊)的原始值 。
注意:在node中使用的是exports,不要混淆了
export有兩種模塊導出方式:命名式導出(名稱導出)和默認導出(定義式導出),命名式導出每個模塊可以多個,而默認導出每個模塊僅一個 。

Require的用法及短語 require的用法



  • name1… nameN-導出的“標識符” 。導出后,可以通過這個“標識符”在另一個模塊中使用import引用
  • default-設置模塊的默認導出 。設置后import不通過“標識符”而直接引用默認導入
  • -繼承模塊并導出繼承模塊所有的方法和屬性
  • as-重命名導出“標識符”
  • from-從已經存在的模塊、腳本文件…導出
命名式導出
模塊可以通過export前綴關鍵詞聲明導出對象,導出對象可以是多個 。這些導出對象用名稱進行區(qū)分,稱之為命名式導出 。

Require的用法及短語 require的用法



我們可以使用*和from關鍵字來實現(xiàn)的模塊的繼承:

Require的用法及短語 require的用法



模塊導出時,可以指定模塊的導出成員 。導出成員可以認為是類中的公有對象,而非導出成員可以認為是類中的私有對象:

Require的用法及短語 require的用法



模塊導出時 , 我們可以使用as關鍵字對導出成員進行重命名:

Require的用法及短語 require的用法



注意 , 下面的語法有嚴重錯誤的情況:

Require的用法及短語 require的用法



export在導出接口的時候,必須與模塊內部的變量具有一一對應的關系 。直接導出1沒有任何意義 , 也不可能在import的時候有一個變量與之對應
export a 雖然看上去成立 , 但是a的值是一個數(shù)字,根本無法完成解構,因此必須寫成export {a}的形式 。即使a被賦值為一個function,也是不允許的 。而且,大部分風格都建議,模塊中最好在末尾用一個export導出所有的接口,例如:

推薦閱讀