- ES6 模块与 CommonJS 模块的差异
区别 | CommonJS 模块 | ES6 模块 | 原因 |
---|---|---|---|
起作用的时机 | CommonJS 模块是运行时加载(运行时) | ES6 模块是编译时输出接口(编译时) | CommonJS 加载的是一个对象(即module.exports属性),该对象只有在脚本运行完才会生成。而 ES6 模块不是对象,它的对外接口只是一种静态定义,在代码静态解析阶段就会生成。 |
模块输出 | CommonJS 模块输出的是一个值的拷贝 | ES6 模块输出的是值的引用 |
区别 | CommonJS 模块 | ES6 模块 | 原因 |
---|---|---|---|
起作用的时机 | CommonJS 模块是运行时加载(运行时) | ES6 模块是编译时输出接口(编译时) | CommonJS 加载的是一个对象(即module.exports属性),该对象只有在脚本运行完才会生成。而 ES6 模块不是对象,它的对外接口只是一种静态定义,在代码静态解析阶段就会生成。 |
模块输出 | CommonJS 模块输出的是一个值的拷贝 | ES6 模块输出的是值的引用 |