Node.js中module文件定义的top-level变量为何是私有的

Posted chaoguo1234

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js中module文件定义的top-level变量为何是私有的相关的知识,希望对你有一定的参考价值。

在Node.js中,module文件里面使用var,const或者let定义的top-level变量为何是私有的,只能在这个模块文件中使用呢?

原因就是,在模块文件中的内容执行之前,node.js会降模块文件包含在一个函数当中,像下面这样:

(function(exports, require, module, __filename, __dirname) {
// Module code actually lives in here
});

这样处理之后,module文件里面定义的top-level变量,实际上就是函数内部的局部变量了,如果不实用exports导出,外部是无法访问到的。

 

参考链接:

https://nodejs.org/api/modules.html#modules_the_module_wrapper

以上是关于Node.js中module文件定义的top-level变量为何是私有的的主要内容,如果未能解决你的问题,请参考以下文章

Node入门--module&require

Node.js入门

Node.js module export async function

Node.js node_modules 相互干扰

Node.js中exports与module.exports的区别

为啥 node.js 安装两个“node_modules”文件夹?