簡介:
只是一種標準,
這個標準的基本原則如下:
- 一個檔案就是一個模組 (module)
- module 包含以下三個變數
- module : 物件 module 本身
- require : 函數 用以載入相依的模組
- export : 物件 用以揭示模組對外的API
- 不被export的資訊將被包在模組的scope底下,以保持全域的清淨。
因為Javascript 原始設計是base-on browser ,
隨著Javascript發展,
Server Side 的js Engine 引擎如雨後春筍冒出 ( rhino、v8、 Spidermonkey and JavaScriptCore),
大型的專案所需要的模組載入功能
Javascript(ECMA-262) 卻未提供,苦無統一的標準,
ES6 的標準將會補足這一塊。
同步載入與異步載入,造成此點最大的差異在於使用的環境,
CommonJS的使用情境為Server (ex: nodejs),
模組都位在同一系統下,不會有非同步載入的情境發生,
而AMD針對Browser的使用情境,需要透過http取得模組,
所以會有非同步的情境,
參考資料:
- http://www.2ality.com/2015/12/babel-commonjs.html
- https://github.com/amdjs/amdjs-api/wiki/AMD
- http://www.commonjs.org/
- http://kangax.github.io/compat-table/es5/
- http://es6.ruanyifeng.com/
- https://24ways.org/2014/javascript-modules-the-es6-way/
- http://wiki.commonjs.org/wiki/Modules/1.1
[[[本誌僅為個人分享與記錄,不保証內容永久正確性,如有謬誤、疏漏或侵權還請留言告知]]]
沒有留言:
張貼留言