编程语言
首页 > 编程语言> > JavaScript 模块化

JavaScript 模块化

作者:互联网

文章目录

什么是模块化开发

结构即模块,按照结构划分进行程序开发的过程,就是模块化开发的过程。

CommonJS 和 Node

CommonJS 是一种代码规范,最初应用于浏览器之外的场景,并且当时命名为ServerJS,后改名为CommonJS,也会简称其为CJS

Node 中对 CommonJS 进行了支持和实现。

模块化的核心功能即是隔离、导出和导入,Node 对其进行了实现。

对象的引用赋值

观察 step01 - step04 代码变化

// step01
let obj = {
    name: "huaqi";
    age: 18;
};
console.log(obj.name); // huaqi
// step02
let info = obj;
console.log(info.name); // huaqi
// step03
obj.name = "花七";
console.log(obj.name); // 花七
console.log(info.name); // 花七
// step04
info.name = "florescence";
console.log(info.name); // florescence
console.log(obj.name); // florescence

以上结果原因图解:
对象的引用赋值

CommonJS exports 与 require 过程

Node 中实现 CommonJS 的 exports 和 require 的本质即是引用赋值
exports 与 require 解析
此时 bar 对象是 exports 对象的引用赋值。
引用赋值亦可称之为浅拷贝。

module.exports

而 exports 对象可以实现导出的原因是 Node 源码中含有以下操作:

module.exports = exports

即 module.exports 为 exports 对象的引用。而 require 实际上是 module.exports 的引用。
图例:
module.exports 图解

:exports 对象存在的意义:CommonJS 规范中要求使用 exports 关键字进行导出。

module.exports 对 exports 对象的引用在模块所有代码之前执行

代码验证:

exports.name = "huaqi";
exports.age = 18;
exports = 3;
console.log(module);
console.log(exports);


在这里插入图片描述

过程图解:
图解

标签:Node,exports,name,模块化,JavaScript,CommonJS,module,模块
来源: https://blog.csdn.net/huaqi_/article/details/122562391