ES6新特性中的Module

来源:互联网 发布:个性头像制作软件 编辑:程序博客网 时间:2024/06/08 11:26

module

在javascript出ES6以前,是不支持原生的模块化的,所以,我们会看到会有外部工具来实现模块的功能,比如遵循CMD规范的Seajs和AMD的RequireJS。在ES6,模块已经作为重要的组成部分被添加进来了。

模块的主要功能由exportimport组成,并且每一个模块都有自己单独的作用域,模块之间的相互调用关系是通过export来规定模块对外暴露接口,通过import来引用其它模块提供的接口。同时还为模块创造了命名空间,防止函数的命名冲突。

export,import命令

//info.jsexport var name = 'skyeTang'

ES6将一个文件视为一个模块,上面的模块通过export向外输出了一个变量。一个模块可以同时往外输出多个变量。

//info.jsvar name = 'skyeTang';var age = '19';export {name,age};

定久好的模块的输出以后,就可以直接在另一个模块通过import引用。

//main.jsimport {name,age} from './info.js'
整体输入,module指令
//info.jsexport function getName(){   return name;}export function getAge(){   return age;}

通过import * as完成了模块整体的导入。

import * as info from './info.js'

通过module也可达到整体的输入。

module info from 'info.js';info.getName();

export default

不用关心模块输出了什么,通过export default指令就能加载到默认模块,不需要通过{}来指定输出的模块,一个模块只能用一次export default

//default 导出export default function getAge(){}//或者function getAge(){}export default getAge;//导入的时候就不需要花括号了import info from './info.js';

当然,一个import是可以同时导入默认方法和其它变量的。

import defaultMethod,{otherArg} from 'xxx.js'
1 0
原创粉丝点击