Module ,即模块,ES6中 模块不是对象,而是通过export
命令显式指定输出的代码,再通过import
命令输入,如同script导入外部JS脚本。
例一:
//xx1.js
var name = 'wu';
var age = 20;
var addr = 'Suzhou';
export {name,age,addr}; //输出变量
//main.js
//引入变量 其中把name变量名改为n
import{name as n,age,addr} from './xx1.js';
例二:
//xx1.js
export function calcs(n) {
return n*n;
} //输出计算方法
//main.js
import{calcs} from './xx1'; //文件名后的.js可以省略
//直接引入方法名
console.log(calcs(3)); //输出9
例三 同一个页面里,可以既有export ,又有import
//xx.js
import{foo ,bar} from 'myjs';
export{foo,bar};
例四 ES6 Module(模块)是 动态引用,并且不会缓存值,模块里面的变量绑定其所在的模块
//xx1.js
export var foo = 'bar';
setTimeout(() => foo = 'bazz',500 );
//xx2.js
import {foo} from './xx1.js';
console.log(foo); //bar
setTimeout(() => console.log(foo),500); //bazz
上面的代码中,xx1.js的变量foo ,刚加载时是bar,过了500毫秒,变成了bazz。那么在xx2.js中这个变化也一样。
先行记录于此,感谢阮一峰先生的ES6入门教程