ECMAScript 6知識點總結 --- Module模組化
阿新 • • 發佈:2018-11-05
- export命令
export var year = 2008; var year = 2008; export {year}; var year = 2008; export {year as time};
export語句不能放在函式中 - import命令
import {year} from './year' import {year as time} from './year'
不允許更改輸入介面import a from './a' a = {} //Syntax Error : 'a' is read-only;
但是可以改寫屬性
a.foo = 'hi'
import
import中不能使用表示式和變數
import語句會執行所載入的模組,但是不輸入任何值
import 'year'
-
export default
匿名函式export default function() { console.log(666) }
其它模組載入時,可以為該匿名函式指定任意名字
import num from './number' num()
非匿名函式
export default function num() { console.log(666) }
或者寫成
function num() { console.log(666) } export default num
此時函式名num在模組外是無效的,其他模組載入時同樣當作匿名函式
-
對比export default和export
使用export default時,對應的import不需要使用大括號export default function num() { //.... } import num from './num'
使用export時,對應的import需要使用大括號
export function num() { //... } import {num} from './num'
-
export 與 import 的複合寫法
import {a, b} from './module'; export {a, b}; // 可以簡化為 export {a, b} from './module';
模組的介面改名和整體輸出,也可以採用這種方法
export {a as mya} from './a' export * from './a'
-
模組的繼承
有一個b模組繼承了a模組// b.js export * from './a'
並在c模組中載入
// c.js import * as data from './b'
-
跨模組常量
// a.js export const A = 1; export const B = 2; export const C = 3; // b.js import * as num from './a' console.log(num.A) // 1 //c.js import {A, B} from './a' console.log(A) // 1