4

为什么“this”在 NodeJS 中是一个空对象?“module.exports”属于哪里?

我认为这"module.exports..."可以写成,"this.module.exports..."但它不会工作。

谢谢

4

1 回答 1

17

如果您在实际模块中:

  • module是对当前模块的引用

  • exports是对导出数据的引用。它被 NodeJS 缓存并交付给require它的其他模块

  • thisexports是对对象的替代引用

  • module.exportsexports是对对象的替代引用

  • this.moduleundefined

this是空的,因为如上所述,它是对与 相同的对象的引用,exports由开发人员填充。

如果this.module是对 的引用module,那么由于this是对 的引用exports,它会将module自身与其他导出的项目一起导出。我怀疑这是需要的。


如果你在 REPL 中,那么this.module是被定义的。

于 2012-10-01T23:45:21.127 回答