为什么在定义导出属性之前调用module.exports仍然有效?
我有这个代码:
var config = module.exports = {}; config.foo = {...};
这工作发现,但我想了解为什么。
我觉得我可以把我的头围绕下面的实现,因为它似乎更有意义导出configuration,而不是设置configuration等于module.exports。
var config = {}; config.foo = {...}; module.exports = config;
有人可以解释一下吗?
var config = module.exports = {};
相当于
var config = (module.exports = {});
和
module.exports = {}; var config = module.exports;
这里导出的值是{}
。 由于config
和module.exports
只是对同一个对象的引用,所以foo
属性仍然可以通过variablesmodule.exports
或config
添加到该对象中。