JavaScript 定义模块
示例
在ECMAScript6中,使用模块语法(import/export)时,每个文件都将成为具有私有名称空间的自己的模块。顶级函数和变量不会污染全局名称空间。要公开其他模块要导入的函数,类和变量,可以使用export关键字。
//不出口 function somethingPrivate() { console.log('TOP SECRET') } export const PI = 3.14; export function doSomething() { console.log('Hello from a module!') } function doSomethingElse(){ console.log("Something else") } export {doSomethingElse} export class MyClass { test() {} }
注意:<script>不使用import/时,通过标签加载的ES5JavaScript文件将保持不变export。
只有显式导出的值将在模块外部可用。其他所有内容都可以视为私有或不可访问。
导入此模块将产生(假设先前的代码块在中my-module.js):
import * as myModule from './my-module.js'; myModule.PI; //3.14 myModule.doSomething(); //“您好,来自模块!” myModule.doSomethingElse(); //'还有别的' new myModule.MyClass(); //MyClass的实例 myModule.somethingPrivate(); //这将失败,因为未导出somethingPrivate