如何理解“使用模块时只会导入模块中显式导出的变量。”

如题,这是我在看MDN关于Express引入模块中的一段提示,自己不太能理解里面的一段话:
image.png
"使用模块还有助于管理名字空间,因为在使用模块时只会导入模块中显式导出的变量。"
这里这句话不太能理解,但觉得应该去理解清楚。

  1. 使用模块怎么就能有助于名字空间?
  2. 使用模块时只会导入模块中显式导出的变量,那么那些不显式导出的变量呢?这里我也理解不了。

解释清楚后,是否能给出一个简单的例子提供参考?

阅读 1.3k
1 个回答
// a.js
let a = 1;
let b = 2;
exports.a = a;
// app.js
let a = require('./a');
console.log(a); // { a : 1 }
console.log(b); // Not defined.

理解:nodejs的单独一个文件就是一个模块,在模块内的函数,变量只有自己可以使用,很大程度上保证了模块中的常量,变量的污染!但是如何在其他地方使用这个呢,就有了模块导入的概念,例子中的b只能在a.js中使用,因为没显式导出,因此在app.js中就不能使用了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题