JavaScript模塊化(ES6和CommonJS)

參考:

  1. 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ù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容