日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ES6之Module的语法(3)

發(fā)布時間:2023/12/10 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ES6之Module的语法(3) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

7.export 與 import 的復(fù)合寫法

如果在一個模塊之中,先輸入后輸出同一個模塊,import語句可以與export語句寫在一起

模塊的接口改名和整體輸出,也可以采用這種寫法

默認(rèn)接口的寫法如下

具名接口改為默認(rèn)接口的寫法如下

因?yàn)槟J(rèn)是輸出變量default,這里直接將es6賦值給了default變量作為輸出

8.import

前面介紹過,import命令會被 JavaScript 引擎靜態(tài)分析,先于模塊內(nèi)的其他模塊執(zhí)行(叫做”連接“更合適)。所以,下面的代碼會報錯

上面代碼中,引擎處理import語句是在編譯時,這時不會去分析或執(zhí)行if語句,所以import語句放在if代碼塊之中毫無意義,因此會報句法錯誤,而不是執(zhí)行時錯誤。也就是說,import和export命令只能在模塊的頂層,不能在代碼塊之中(比如,在if代碼塊之中,或在函數(shù)之中)

這樣的設(shè)計,固然有利于編譯器提高效率,但也因?yàn)槠鋵?shí)靜態(tài)加載導(dǎo)致無法在運(yùn)行時再加載模塊。從語法上,條件加載就不可能實(shí)現(xiàn)。如果import命令要取代 Node 的require方法,這就形成了一個障礙。因?yàn)閞equire是運(yùn)行時加載模塊,import命令無法取代require的動態(tài)加載功能

上面的語句就是動態(tài)加載,require到底加載哪一個模塊,只有運(yùn)行時才知道。import語句做不到這一點(diǎn)

因此,有一個提案建議引入import()函數(shù),完成動態(tài)加載

10.模塊的繼承

模塊之間也可以繼承

上面代碼中的export ,表示再輸出circle模塊的所有屬性和方法。注意,export 命令會忽略circle模塊的default方法。然后,上面代碼又輸出了自定義的e變量和默認(rèn)方法

這時,也可以將circle的屬性或方法,改名后再輸出

上面代碼表示,只輸出circle模塊的area方法,且將其改名為circleArea

加載上面模塊的寫法如下

上面代碼中的import exp表示,將circleplus模塊的默認(rèn)方法加載為exp方法

總結(jié)

以上是生活随笔為你收集整理的ES6之Module的语法(3)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。