【发布时间】:2016-06-24 05:26:13
【问题描述】:
我正在实例化一个事件发射器,并注意到这两行似乎都可以正常工作。
谁能澄清这两种导入和实例化 EventEmitter 类的方法之间的权衡或区别?
1:var eventEmitter = new (require('events')).EventEmitter();
2:var eventEmitter = new (require('events').EventEmitter)();
我的看法:
在 1 中,(require('events')) 应该返回 events 模块的导出。然后.EventEmitter() 引用该类并new 创建EventEmitter 的新实例。
在2中,(require('events').EventEmitter) should return the exported EventEmitter class. Thennew...()creates a new instance ofEventEmitter`。
【问题讨论】:
-
假设您使用的是最新的节点 LTS 或 0.12 之后的版本 - 那么您的 '.EventEmitter' 部分已被弃用,而不再需要。所以你可以这样做: var evntEmitter = new (require('events'))();
标签: javascript node.js class eventemitter