參考:
-
http://es6.ruanyifeng.com/#docs/module
2.http://www.ruanyifeng.com/blog/2015/05/require.html
3.http://blog.csdn.net/a409051987/article/details/54747512
JS模塊的標(biāo)準(zhǔn)主要有三種:ES6,CommonJS和AMD ,后兩種是社區(qū)制定。
關(guān)于加載方式:ES6的原則是盡量地靜態(tài)化,是在編譯是加載的,而后兩種是在運(yùn)行是加載的,ES6的動(dòng)態(tài)加載是用import()來(lái)能實(shí)現(xiàn)的。
標(biāo)準(zhǔn)有三種,語(yǔ)法有點(diǎn)像,所以用起來(lái)難免會(huì)混淆,這里總結(jié)一下。主要是ES6和NodeJS實(shí)現(xiàn)的CommonIS標(biāo)準(zhǔn)兩種。
先來(lái)比較一下兩種的原理:ES6導(dǎo)出的是接口,而CommonJS導(dǎo)出的是對(duì)象,在NodeJS看來(lái),每個(gè)模塊都是Module的一個(gè)實(shí)例,Module是一個(gè)構(gòu)造函數(shù)(Module的具體解釋?zhuān)€是要看看參考2),而exports是實(shí)例的一個(gè)屬性,事實(shí)上導(dǎo)出的東西就是這個(gè)exports。
然后是語(yǔ)法:
ES6 的兩個(gè)命令是import、export
導(dǎo)入和導(dǎo)出需要按照接口一一對(duì)應(yīng),除export default(匿名導(dǎo)出)

image.png
CommJS的命令是exports(module.exports)、require
//導(dǎo)入的是對(duì)象

image.png
還需要更新例子,下次繼續(xù)