node.js - EventEmitter 创建

标签 node.js

以下有什么区别:

new require('events').EventEmitter();

var events = require('events');
new events.EventEmitter();

第一个不工作,但第二个 - 工作。

为什么?

最佳答案

注意这些行之间的区别:

新的 foo().bar()

...和...

新的 foo.bar()

在第一种情况下,new 运算符将改变 foo() 函数的处理方式:它将用作构造函数(使用 this指向其原型(prototype)副本等)

但在第二种情况下,new 运算符不能应用于 foo,因为后者未被调用:它是它的 bar 被调用的属性。当然,这里的 new 意味着 foo.bar 被用作构造函数。

这正是您的示例中发生的情况:第一种情况尝试将 new 应用于 require 函数调用,而不是 %require_result%.EventEmitter一个。

关于node.js - EventEmitter 创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15614749/

相关文章:

node.js - 使用jade从文件中读取数据并传递到模板

node.js - 在 Node.js 中获取应用程序完整路径

node.js - Node.js 的更改应该是即时的吗?

node.js - Nodejs 包包含 CoffeeScript。该怎么办?

javascript - 在 for 循环中使用 async/await

node.js - 无法使用 fetch 发送请求

javascript - 在 NodeJs 简单模拟中捕获查询字符串中的参数

node.js - Node-phantom 显示生成的 pdf 页数

node.js - Vue CLI 和 Webpack : can't get webpack-dev-server to run

sql-server - 如何将图像发送到Web服务 Node js,然后使用此图像参数执行存储过程