ES6之Module的语法(3)
生活随笔
收集整理的這篇文章主要介紹了
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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北漂、海漂的你,每个月发薪资支付生活成本
- 下一篇: OpenCV:SURF算法浅析