Node.js模块化标识 及 证明模块是函数

本文深入探讨Node.js的模块系统,区分核心模块与文件模块。核心模块直接通过名字引用,无需路径,而文件模块需指定路径。通过`global`对象和`arguments`验证模块非全局变量,证明其独立性。模块机制确保了代码的隔离和组织性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模块的标识:

——模块分成两大类

                核心模块

                        —由node引擎提供的模块

                                  【核心模块有自己的标识,就是模块的名字,无需通过路径引入】

                                  (当然,这是引擎自供的模块,只有它自己知道模块的路径)

                文件模块

                        —由用户自己创建的模块

                                  【文件模块的标识就是文件的路径(一般都是相对路径)】

举例引入引擎提供的 "fs" 模块

底下输出的便是fs模块的内容 

---------------------------------------------------------------------------------------------------------------------------------

之前说过,可以将模块理解为都是单独的函数。因此,模块不会是全局变量。

那反过头来,怎么证明模块不是全局变量呢?

我们可以利用引擎提供的 " global " 方法,它 是 Node.js 中全局命名空间的句柄

在全局中创建的变量会作为 global 的属性保存,而函数则作为方法保存

console作为控制台算windows的全局变量,则调用 global.console 的结果应该为正确

在这里我们定一个全局变量,再使用global方法,如果返回为true则可证明模块就是全局变量

可以看到结果为true 

同理,我们定义一个变量 a,如果 global.a 为true,则 a 为全局变量

那么模块也就是全局变量了

 实际检测后,结果为false,a不是全局变量,则模块不是全局变量

———————————————————————————————————————————

或者我们再提出一种方法

叫做 arguments 

这个单词是不是很熟悉, 它是一个用于封装函数实参的类数组对象

如果它能在模块中运行的话,就能侧面证明模块是一个函数

可以看到,它不仅可以正常运行,甚至还有很多参数

从以上两个例子中可以得出结论:模块不是全局变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值