exports和module.exports的区别
- 1、
module.exports
初始值是个空对象{}
,exports
一开始是指向module.exports
的,所以exports
初始值也是个空对象{}
;
- 举例:
module
和exports
这两个对象是Node.js
的文件中默认隐式存在
console.log(exports);
console.log(module);
//在终端运行:
{}
Module {
id: '.',
exports: {},
...
}
- 2、通过
require
得到的是module.exports
中的内容,而不是exports
的内容。即如果module.exports
当前没有任何属性的话,exports
会把属性赋给module.exports
,如果module.exports
中已经存在一些属性的话,exports
中的属性会被忽略
- 举例:
//把下面的内容放到a.js:
exports.add = 123;
module.exports={
hello:1234
}
//然后在另一个b.js文件中执行它:
var rocker = require('./a.js');
console.log(rocker.add); //undefined
console.log(rocker.hello); //1234