首先,举个例子,编写一个exports_test.js模块,代码如下:
var name="我是var声明的name变量";exports.name="我是exports下的属性name";function sayName(){ console.log("我是function 声明的sayName()方法!");}exports.sayName1=function(){ console.log("我是exports下的一个方法!");};
2
然后新建一个test.js,将上面的模块引入:
var exports_test=require('./exports_test.js');
console.log(exports_test);//输出
执行test.js后,可以看到输出的结果如图
{ name: '我是exports下的属性name', sayName1: [Function] }
3
由以上可以看出,任何exports属性和方法都可以再外部访问,而var声明和funciton直接定义方法都是私有的,只有在exports暴露后才是共有的。外部才可以通过exports_test.name类型获取,如下
console.log(exports_test.name);console.log(exports_test.sayName1());