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(匿名导出)

JavaScript模块化(ES6和CommonJS)_第1张图片
image.png

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


JavaScript模块化(ES6和CommonJS)_第2张图片
image.png

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

你可能感兴趣的:(JavaScript模块化(ES6和CommonJS))