ES6 模塊實現

以下是我自己學習了es6的module之後自己的理解,希望大家能夠指出錯誤,畢竟新手一枚。

es6和commonjs的運行機制的比對

項目 es6 CommonJS
編譯時 生成import東西的引用 單純的檢查語法有沒有錯誤
運行時 執行import模塊的內容 執行require模塊的內容
結果 把引用弄到本模塊中 生成了一個模塊對象{id,exports,}不會跟原始模塊有關係
單例
原模塊值改變 會跟着變 不會

用法

1、export 規定對外的接口,所以必須與模塊的內部的變量建立一對一對應關係;function也一樣
export 1//error
let m = 1;export m; //error
export let m = 1;//success
var m = 1; export {m};//success
2、直接導出引用的方法

export {xxx} from 'xxx'

3、同時引入default變量和其它接口

import default,{xxx,xxx} from 'xxx'

4、跨模塊常量

//a.js
export const aa = "aa";
//b.js
export const bb = "bb";
//c.js
export {aa} from 'a.js';
export {bb} from 'b.js';
//d.js
import {aa,bb} from 'c.js'
5、注意點

default後面不能再直接跟變量了 export default var m = 1//error export default 1//success

es6模塊中,頂層的this = undefine CommonJS頂層this = 當前模塊
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章