nodejs中的exports

模块中通过var声明的变量 , 其作用域属于只属于当前自身模块 ,外部不能直接访问,如果我们想在一个模块中能够访问另一个模块中定义的变量 ,我们可以 :

1. 把变量作为global对象的一个属性(不推荐的做法, 我们要尽量的减少全局变量的使用)

global.a=100;

2. 使用module对象的子对象exports

在module对象中, 有一个子对象exports对象,我们可以通过这个对象把一个模块中的局部变量对象进行提供访问

1.js

var a = 100;
module.exports.a=a;

2.js

var a  = require('./1.js'); //这个方法的返回值, 其实就是被加载模块中的module.exports

console.log(a);

输出结果: { a: 1000 }

3. 在模块作用域 , 还有内置的模块对象 , exports , 它其实就是 module.exports

结果为true
console.log(exports === module.exports);

他们两者之间尽量不要去破坏引用关系(在对象自身添加属性, 而不是添加一个对象)

分享到