es6模块与 commonJS规范的区别

清疚 2022-09-16 13:26 335阅读 0赞

文章转载自:https://www.jianshu.com/p/16af8b54384a

commomJS模块:
1、获得的是缓存值,是对模块的拷贝
2、可以对commomJS模块重新赋值
3、可以对对象内部的值进行改变

es6模块:
1、获得的是时时的值,是对模块的引用
2、对es6模块重新赋值会报错
3、可以对对象内部的值进行改变

  1. es6 {
  2.   export : '可以输出多个,输出方式为 {}'
  3.   export default : ' 只能输出一个 ,可以与export 同时输出,但是不建议这么做'
  4.   解析阶段确定对外输出的接口,解析阶段生成接口,
  5.   模块不是对象,加载的不是对象,
  6.   可以单独加载其中的某个接口(方法),
  7.   静态分析,动态引用,输出的是值的引用,值改变,引用也改变,即原来模块中的值改变则该加载的值也改变,
  8.   this 指向undefined
  9. }
  10. commonJS {
  11.   module.exports = ... : '只能输出一个,且后面的会覆盖上面的'
  12.   exports. ... : ' 可以输出多个'
  13.   运行阶段确定接口,运行时才会加载模块,
  14.   模块是对象,加载的是该对象,
  15.   加载的是整个模块,即将所有的接口全部加载进来,
  16.   输出是值的拷贝,即原来模块中的值改变不会影响已经加载的该值,
  17.   this 指向当前模块
  18. }

发表评论

表情:
评论列表 (有 0 条评论,335人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ES6 模块 CommonJS 模块差异

    前面我们已经对ES6的模块化规划和CommonJs的模块化规范已经介绍过了,所以今天我们主要聊聊这两种模块化的差异,如果对这两种模块化规范不是特别了解的,可以点击[ES6模块化