2つの仕様AMDモジュラー道路のjs jsのモジュラーとCMD ES6のインポート、エクスポートの文言

ES6前に、関係者はこのモジュールの構文輸出入を出てきませんでした。

、コードの再利用性を向上グローバルな環境汚染を避けるために、市民は多くのモジュラー実装を書きました:

1.すぐに機能を実行します

関数(グローバル変数){ 
   globalVariable.test = 関数(){}
    // ...関数はグローバルスコープを汚染しない、変数を宣言 
(グローバル変数)})

2. AMDとCMD

私は長い時間前にこのブログを書いている:2つの仕様AMDとCMD JSモジュラーを

// AMD 
DEFINE([ './ A'、 './b']、関数(A、B){
   // ロードモジュール用いて完成させることができる 
  A. ()
  B. ドを()
})
// CMDは、 
DEFINE(関数(必要、輸出、Module1の){
   // ロードモジュール
  // 要求することができる任意の場所書き込み機能本体遅延ロード実装
  するvar A =必要とする( './ A' 
  a.doSomething()
})

3. CommonJs

これは今まで、多くの人々はまだ使用し、モジュール式の標準NodeJsです。

CONST MOD =は(」./ mod.js'を必要とします)。

module.exportsは = {MOD}。
exports.test = 123。

それはそれは、各モジュールのファイルはレイヤ機能に包まれている、である、また、非常に単純な原理だ、そして最終的には戻りmodule.exportsはを追加し、この機能の実装に相当の時間を必要とします

4. ES6公式の輸出入

:私もブログ記事を書いた具体的な使用ES6のインポート、エクスポート文言を

「./mod.js'からインポートMOD 

母せ = '123'
 であれば(mod.a === 1 ){ 
    CONST名 = 'MOD2' 
    インポート( `。 /${name}.js`).then(mod2 => {
    // 拿到MOD2的东西
  })
} 

エクスポート{ 
    MOD、
    母としてデフォルト
}

 

地域社会との違いについてはこちらを語っまだ比較的アクティブCommonJsとESモジュールバーあり

インポートの一方ESモジュール1 CommonJsは、同期または非同期(推奨読書:あってもよいから「XXX」、同期がロードされる必要https://segmentfault.com/q/1010000005680390

2.(サポートはif文の内側にロードされ、目標はスプライシング動的にロードすることができます)動的ロードをサポートし、CommonJs()の同期を直接要求し、ESモジュールのインポートと()は非同期

3. CommonJs値がコピーされ、ESモジュールが同じメモリを指している、もちろん、一般的なメモリが、通常の一般的なタイプのCommonJS複製だけでなく、共有メモリESモジュールオブジェクトの同じタイプであります

おすすめ

転載: www.cnblogs.com/amiezhang/p/11371433.html