zoukankan      html  css  js  c++  java
  • CommonJs和ES6的模块加载的区别

    在CommonJs中,通过exportsmodule.exports来导出模块中的内容,通过require来导入
    在ES6中,通过exportexport default来导出模块中的内容,通过import来导入

    他们的主要区别有:

    CommonJS中,对于导入的数据,如果是原始类型的数据,是进行了复制,对其进行更改不会影响到被导入模块中的数据;而引用数据类型的数据,只是进行了浅拷贝,对其进行更改会影响到被导入模块中的数据;
    CommonJS中,在导入模块时,就整个执行了代码;
    CommonJS中,在同模块中多次导入,只会执行一次代码,后面的都是使用缓存,除非清了缓存;
    CommonJS中,循环模块加载时,只会输出已执行的部分,未执行的不会被输出

    ES6中,属于【动态只读引用】;
    动态是指,当原始值发生变化时,import的数据也会改变。无论什么数据类型;
    只读是指,import的数据不可更改,import时只是生成一个对原始值的只读引用,当执行到时,才去被加载的模块中取值;
    在循环加载中,只要两个模块中存在某种引用,模块就会被执行。

  • 相关阅读:
    android面试之怎么把图片变成圆形
    android面试之contentProvider获取联系人
    Android面试之assets和aw文件的使用
    Android设计模式之面试
    Activity、Window、View的关系
    ViewPager的简单用法
    补间动画
    帧动画
    android系统的样式和主题
    C++的三种继承方式简述
  • 原文地址:https://www.cnblogs.com/ashen1999/p/13862385.html
Copyright © 2011-2022 走看看