Time: 20190924

导入模块式,CommonJS中获取的是导出值的拷贝,ES6模块中则是值的动态映射,且这个映射是只读的。

简单来说就是,在CommonJS规范下,通过require()导入的是模块的一份值拷贝,可以任意修改,且不会影响到原模块的值。修改原模块的值也不会变动当前文件下的值。-- 二者在导入那一刻失去了联系。

在ES6规范下,打入只是和原模块建立连接,当前文件下不允许修改原模块,即只读。修改原模块的值,会在当前文件下也起作用。

看下面的例子就很清晰了:

CommonJS规范下值拷贝

// calculator.js
var count = 0;
module.exports = {count: count,add: function(a, b) {count += 1;return a + b;}
};// index.js
var count = require('./calculator.js').count;
var add = require('./callculator.js').add;console.log(count); // 0
add(2, 3); // calculator.js中的count会变化
console.log(count); // 0,这里的count不受变化count += 1; // 本地count值可变化
console.log(count); // 1

ES6规范下动态映射

// calculator.js
let count = 0;
const add = function(a, b) {count += 1;return a + b;
};
export { count, add };// index.js
import { count, add } from './calculator.js';
console.log(count); // 0
add(2, 3); //
console.log(count); // 1, 实时反映calculator.js中的count值的变化count += 1; // 不允许,count是只读的

2019.10 Update:

第一届PAT算法直播课培训班招募帖,欢迎点击查看详情、

END.

CommonJS的值拷贝与ES6的动态映射相关推荐

  1. go语言 函数相关1:实参到形参的传递永远是值拷贝

    相关知识点 a. 函数实参到形参的传递永远是值拷贝 b. 函数参数 支持不定长参数,不定参数名在函数体 内相当于切片,对切片的操作同样适合对不定参数的操作 c. 切片是引用类型,值包含指向数组的指针 ...

  2. C#代码中背后进行的值拷贝

    一种经常发生的装箱 Int32 i = 100; Console.WriteLine("The number is: " + i); 通过VS SDK Tools里的IL DASM ...

  3. android log 如何获取double类型后小数点的值_【ES6基础】Symbol介绍:独一无二的值...

    开篇 ES6之前我们都清楚JS有六种数据类型:Undefined.Null.布尔值(Boolean).字符串(String).数值(Number).对象(Object),今天笔者讲的Symbol类型是 ...

  4. PowerDesigner里面将表中name列值拷贝到comment列

    完整版见https://jadyer.github.io/2015/06/03/powerdesigner-copy-name-to-comment/ /*** PowerDesigner里面将表中n ...

  5. 浅拷贝、深拷贝、值拷贝和位拷贝

    首先: 位拷贝就是浅拷贝,值拷贝就是深拷贝. 编译器会在必要的时候,自己产生默认的拷贝构造函数和赋值函数,采用的位拷贝. 自己可以重新定义 拷贝构造函数,要注意采用值拷贝. Q:什么是浅拷贝(shal ...

  6. IO静态映射和动态映射

    1:静态映射方法的特点: 内核移植时以代码的形式硬编码,如果要更改必须改源代码后重新编译内核在内核启动时建立静态映射表,到内核关机时销毁,中间一直有效对于移植好的内核,你用不用他都在那里 2:动态映射 ...

  7. 字符设备驱动高级篇5——静态映射表、动态映射结构体方式操作寄存器

    以下内容源于朱有鹏<物联网大讲堂>课程的学习整理,如有侵权,请告知删除. 一.静态映射表建立过程分析 1.建立映射表的三个关键部分 (1)映射表描述 具体物理地址和虚拟地址的值相关的宏定义 ...

  8. ElasticSearch 动态映射与静态映射_08

    映射就是 Mapping,它用来定义一个文档以及文档所包含的字段该如何被存储和索引.所以,它其实有点类似于关系型数据库中表的定义. 映射分类 动态映射 顾名思义,就是自动创建出来的映射.es 根据存入 ...

  9. 【Elasticsearch】Elasticsearch 7 : 动态映射 dynamic

    1.概述 参考:https://www.letianbiji.com/elasticsearch/es7-dynamic-mapping.html 动态映射实战彻底理解:[Elasticsearch] ...

最新文章

  1. OGNL使用方法总结
  2. Cacti迁移RRA数据迁移脚本
  3. Windows server 2008 R2实现多用户远程连接
  4. Spark的StaticMemoryManager
  5. 服务器运维应该报什么专业,数据中心基础设施运维人员应该掌握哪些专业技能?...
  6. 在STM8单片机中自己实现 printf()函数功能
  7. php rabbitmq延迟队列示例
  8. spring cloud 微服务的版本介绍与内部组件详解
  9. SVN统计一段时间的日志
  10. 异速联客户端可以删除服务器文件,异速联客户端怎么连接服务器
  11. ckpt为savermodel模型并TRT调用的问题
  12. feedburner怎么用_新手RSS订阅使用指南
  13. 一款利用PIN管设计的可调衰减器
  14. 剖析Unreal Engine超真实人类的渲染技术Part 3 - 毛发渲染及其它
  15. 视图、存储过程、触发器
  16. 人生感悟:他们这样爬出烂泥般的人生
  17. electron实现让文件出现在软件安装目录中并使用其中的文件
  18. echarts数据可视化(仪表盘)
  19. PHP intval 与 floatval
  20. 首届“全球创新创业教育论坛” 暨“大学三基工程”工作会议将于9月26-28日在湖南韶山召开

热门文章

  1. 自动驾驶算法-滤波器系列(一)——详解卡尔曼滤波原理
  2. Reading Excel with Python
  3. (01)C++之设计模式演变
  4. android服务下载apk,android下载apk并安装
  5. 用四级法测量计算机土壤电阻率,土壤电阻率的原理及测量土壤电阻率的测量方法...
  6. python generator转为list_Python中的 List Comprehension 以及 Generator
  7. python彩票预测与分析_130期柳无尘双色球预测奖号:红球和值分析
  8. python将对象放入列表根据某个属性排升序_python实现对象列表根据某个属性排序的方法详解...
  9. consul配置mysql集群_consul1.6实现Mysql-Gtid主从读写分离和高可用-03
  10. python开发工具和框架安装器_Python基础框架和工具