模块的标识:
——模块分成两大类
核心模块
—由node引擎提供的模块
【核心模块有自己的标识,就是模块的名字,无需通过路径引入】
(当然,这是引擎自供的模块,只有它自己知道模块的路径)
文件模块
—由用户自己创建的模块
【文件模块的标识就是文件的路径(一般都是相对路径)】
举例引入引擎提供的 "fs" 模块
底下输出的便是fs模块的内容
---------------------------------------------------------------------------------------------------------------------------------
之前说过,可以将模块理解为都是单独的函数。因此,模块不会是全局变量。
那反过头来,怎么证明模块不是全局变量呢?
我们可以利用引擎提供的 " global " 方法,它 是 Node.js 中全局命名空间的句柄
在全局中创建的变量会作为 global 的属性保存,而函数则作为方法保存
console作为控制台算windows的全局变量,则调用 global.console 的结果应该为正确
在这里我们定一个全局变量,再使用global方法,如果返回为true则可证明模块就是全局变量
可以看到结果为true
同理,我们定义一个变量 a,如果 global.a 为true,则 a 为全局变量
那么模块也就是全局变量了
实际检测后,结果为false,a不是全局变量,则模块不是全局变量
———————————————————————————————————————————
或者我们再提出一种方法
叫做 arguments
这个单词是不是很熟悉, 它是一个用于封装函数实参的类数组对象
如果它能在模块中运行的话,就能侧面证明模块是一个函数
可以看到,它不仅可以正常运行,甚至还有很多参数
从以上两个例子中可以得出结论:模块不是全局变量