nodejs 中经常会看到这样的代码
exports = module.exports = {}
请问 为什么要让 exports = module.exports 呢? 这样做有什么作用呢? 谢谢!!!
nodejs 中经常会看到这样的代码
exports = module.exports = {}
请问 为什么要让 exports = module.exports 呢? 这样做有什么作用呢? 谢谢!!!
5 回答4.8k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
5 回答1.9k 阅读
2 回答1.3k 阅读✓ 已解决
3 回答2k 阅读
1 回答3.2k 阅读
让这个模块更加纯粹的写法。
module.exports是require()方法调用模块的接口,而exports可以给模块添加更多的方法,而exports返回的是一个实例化对象,指向module.exports
比如对于一个构造函数来说:
Person.js
Use.js
因此可以将exports理解为给模块进行最后修饰的方法;
而module.exports则负责暴露一个接口供require()方法调用,若module.exports没有被声明指向,那它就默认的导出exports所指向的对象,如这样一个场景:
Person.js
User.js
总结:
module.exports是模块导出的仲裁,它决定到底导出一个什么东西,本质上就是提供给require()方法的一个返回值,因此它可以是任何js基本类型(包括null);
exports是给导出模块进行修饰的辅助方法,但受module.exports的仲裁,决定模块是否能具有这个属性。