【问题标题】:NodeJS "this" empty objectNodeJS“this”空对象
【发布时间】:2012-10-01 23:26:49
【问题描述】:

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

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

谢谢

【问题讨论】:

  • 适合我,你用的是什么设置?
  • Ubuntu 12.04 中的 NodeJS 0.8.11。我有一个带有 console.log(this) 的“app.js”文件;当我运行它时会打印 {}
  • this.module.exports.go = function() TypeError: Cannot read property 'exports' of undefined
  • 这行在什么上下文中?是在模块级别还是在函数内部?
  • @phenomnomnominal:你是在 REPL 中测试吗?

标签: javascript node.js this


【解决方案1】:

如果您在实际模块中:

  • module是对当前模块的引用

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

  • this 是对exports 对象的替代引用

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

  • this.moduleundefined

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

如果this.module 是对module 的引用,那么由于this 是对exports 的引用,它将导出module 本身以及其他导出的项目。我怀疑这不是我们想要的。


如果您在 REPL 中,则定义了 this.module

【讨论】:

    猜你喜欢
    • 2016-06-17
    • 1970-01-01
    • 2016-06-18
    • 2017-02-28
    • 2021-06-26
    • 2017-04-26
    • 1970-01-01
    • 1970-01-01
    • 2020-12-16
    相关资源
    最近更新 更多