🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 为什么模块化 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。 使用模块有什么好处: * 最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括 Node.js 内置的模块和来自第三方的模块。 * 使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。 # 什么是模块化 在 JavaScript 领域: * 模块是一段 JavaScript 代码,具有统一的基本书写格式。 * 模块之间通过基本交互规则,能彼此引用,协同工作。 # 模块化规范 对书写格式和交互规则的详细描述,就是模块定义规范(Module Definition Specification): * AMD 规范: Require.js 前端模块化 * CMD 规范: Sea.js 前端模块化 * CommonJS 的 Modules 规范: Node.js 后端模块化规范 * ES6 模块化规范 # 模块 模块是 Node.js 应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个 Node.js 文件就是一个模块,这个文件可能是 JavaScript 代码、JSON 或者编译过的 C/C++ 扩展。 在 Node.js 中,当每个 JavaScript 文件在执行或被 require 的时候,Node.js 其实创建了一个新的实例 var module = new Module(),这个实例名叫 module。这也就是为什么你并没有定义 module 这个变量,却能 console.log 出来而不会报错的原因。而这个实例中有个 exports 属性默认是空对象,而这个属性的里面值就是该模块被导出的的东西。其他模块要使用这些导出的东西,就得使用 require 导入。