a.js
exports = {
z: function() {
console.log('aZ');
}
};
main.js
require('./a').z(); // error
为什么 require('./a')
返回一个空对象?
最佳答案
因为在您的示例中,您正在覆盖 exports
全局,而不是更新它。如果您将代码替换为:
exports.z = function() {
console.log('aZ');
};
它会起作用,因为您正在将 z
添加到实际的导出对象。
如果您查看 docs ,你会看到:
A reference to the module.exports that is shorter to type.
所以你可以想象这种情况:
var module = {
exports: { /* some export stuff */ }
};
var exports = module.exports;
现在,如果您将导出替换为 exports = something
,您实际上并没有更改 module.exports。
关于javascript - 为什么下面的 `exports = { z: function() {} };` 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40765368/