看的书是《Node.js 开发指南》,问题如图:
这上面说exports是和module.exports指向同一个对象的变量,那么给exports赋值不就等于再给module.exports赋值了吗?为啥这里不可以呢?
看的书是《Node.js 开发指南》,问题如图:
这上面说exports是和module.exports指向同一个对象的变量,那么给exports赋值不就等于再给module.exports赋值了吗?为啥这里不可以呢?
简单的说,当前模块的导出对象总是指向module.exports
,给它赋值什么当前模块就导出什么;
然后Node里通过exports = module.exports
使exports
指向module.exports
。
如果你赋值给exports
:exports = xxx
,那么exports
就不指向module.exports
了。
实际上,你写的模块代码是被Node封装成一个函数来调用的,即:
function (exports, require, module, __filename, __dirname) { ',
// 你的代码在这里
}
exports
、module
是这个函数的参数。虽然exports
和module.exports
指向相同的对象,但是如果你直接修改module
这个函数参数:
exports = xx;
很显然是没法达到目的的。
3 回答2.8k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
2 回答748 阅读✓ 已解决
2 回答1.8k 阅读
2 回答829 阅读✓ 已解决
2 回答1.2k 阅读
https://segmentfault.com/q/1010000000708989
你需要知道二者区别!