1. 程式人生 > >Node.js中module文件定義的top-level變量為何是私有的

Node.js中module文件定義的top-level變量為何是私有的

size file 模塊 node api export 參考 mil -s

在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變量為何是私有的