JavaScript模块化(ES6和CommonJS)

参考:

  1. http://es6.ruanyifeng.com/#docs/module
    2.http://www.ruanyifeng.com/blog/2015/05/require.html
    3.http://blog.csdn.net/a409051987/article/details/54747512

JS模块的标准主要有三种:ES6,CommonJS和AMD ,后两种是社区制定。
关于加载方式:ES6的原则是尽量地静态化,是在编译是加载的,而后两种是在运行是加载的,ES6的动态加载是用import()来能实现的。

标准有三种,语法有点像,所以用起来难免会混淆,这里总结一下。主要是ES6和NodeJS实现的CommonIS标准两种。

先来比较一下两种的原理:ES6导出的是接口,而CommonJS导出的是对象,在NodeJS看来,每个模块都是Module的一个实例,Module是一个构造函数(Module的具体解释,还是要看看参考2),而exports是实例的一个属性,事实上导出的东西就是这个exports。

然后是语法:

ES6 的两个命令是import、export
导入和导出需要按照接口一一对应,除export default(匿名导出)

image.png

CommJS的命令是exports(module.exports)、require
//导入的是对象


image.png

还需要更新例子,下次继续

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。