var msg = "你好";
//对外暴露的变量,只有暴露了才能访问到
exports.msg = msg;
msg这个变量,是一个js文件内部才有作用域的变量。
如果别人想用这个变量,那么就要用exports进行暴露。
使用者:
var foo = require("./test/foo.js");
console.log(foo.msg);
使用者用foo来接收exports对象,也就是说,这里的foo变量,就是文件中的exports变量。
一个JavaScript文件,可以向外exports无数个变量、函数。但是require的时候,仅仅需要require这个JS文件一次。使用的它的变量、函数的时候,用点语法即可。所以,无形之中,增加了一个顶层命名空间。