日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Require的用法及短語 require的用法( 五 )




默認導入
在模塊導出時,可能會存在默認導出 。同樣的,在導入時可以使用import指令導出這些默認值 。
直接導入默認值:

Require的用法及短語 require的用法



也可以在命名空間導入和名稱導入中,同時使用默認導入:

Require的用法及短語 require的用法



import使用示例

Require的用法及短語 require的用法



default關鍵字
Require的用法及短語 require的用法



在import的時候 , 可以這樣用:

Require的用法及短語 require的用法



這個語法糖的好處就是import的時候,可以省去花括號{} 。
簡單的說,如果import的時候,你發(fā)現(xiàn)某個變量沒有花括號括起來(沒有*號),那么你在腦海中應該把它還原成有花括號的as語法 。
所以,下面這種寫法你也應該理解了吧:

Require的用法及短語 require的用法



import后面第一個$是{defalut as $}的替代寫法 。
as關鍵字
as簡單的說就是取一個別名,export中可以用 , import中其實可以用:

Require的用法及短語 require的用法



上面這段代碼,export的時候 , 對外提供的接口是fun,它是a.js內(nèi)部a這個函數(shù)的別名,但是在模塊外面,認不到a,只能認到fun 。
import中的as就很簡單,就是你在使用模塊里面的方法的時候,給這個方法取一個別名 , 好在當前的文件里面使用 。之所以是這樣,是因為有的時候不同的兩個模塊可能通過相同的接口 , 比如有一個c.js也通過了fun這個接口:

Require的用法及短語 require的用法



如果在b.js中同時使用a和c這兩個模塊,就必須想辦法解決接口重名的問題,as就解決了 。
CommonJS中module.exports 與 exports的區(qū)別Module.exports
module.exports對象是由模塊系統(tǒng)創(chuàng)建的 。有時這是難以接受的;許多人希望他們的模塊成為某個類的實例 。為了實現(xiàn)這個,需要將期望導出的對象賦值給module.exports 。注意,將期望的對象賦值給exports會簡單地重新綁定到本地exports變量上,這可能不是你想要的 。
exports變量是在模塊的文件級別作用域內(nèi)有效的,它在模塊被執(zhí)行前被賦于 module.exports 的值 。它有一個快捷方式 , 以便 module.exports.f = … 可以被更簡潔地寫成exports.f = … 。注意,就像任何變量,如果一個新的值被賦值給exports,它就不再綁定到module.exports(其實是exports.屬性會自動掛載到?jīng)]有命名沖突的module.exports.屬性)
從Api文檔上面的可以看出,從require導入方式去理解 , 關鍵有兩個變量(全局變量module.exports,局部變量exports)、一個返回值(module.exports)

Require的用法及短語 require的用法



demo.js:

Require的用法及短語 require的用法



注意:每個js文件一創(chuàng)建,都有一個var exports = module.exports = {},使exports和module.exports都指向一個空對象 。
module.exports和exports所指向的內(nèi)存地址相同
【Require的用法及短語 require的用法】首發(fā)文章,歡迎關注我的公眾號:Web前端Talk

推薦閱讀