Javascript nodejs事件-EventEmitter-了解类实例
我正在实例化一个事件发射器,并注意到这两条线似乎都工作正常 有人能澄清这两种导入和实例化EventEmitter类的方法之间的权衡或区别吗 1:Javascript nodejs事件-EventEmitter-了解类实例,javascript,node.js,class,eventemitter,Javascript,Node.js,Class,Eventemitter,我正在实例化一个事件发射器,并注意到这两条线似乎都工作正常 有人能澄清这两种导入和实例化EventEmitter类的方法之间的权衡或区别吗 1:var eventEmitter=new(require('events')).eventEmitter() 2:var eventEmitter=new(require('events').eventEmitter)() 我的目标: 在1中,(require('events'))应返回事件模块的导出。然后.EventEmitter()引用该类并new创
var eventEmitter=new(require('events')).eventEmitter()代码>
2:var eventEmitter=new(require('events').eventEmitter)()代码>
我的目标:
在1中,(require('events'))
应返回事件
模块的导出。然后.EventEmitter()
引用该类并new
创建EventEmitter
的新实例
在2中,(require('events').EventEmitter)应返回导出的EventEmitter类。然后
new…()创建一个新的
EventEmitter`.没有什么不寻常的。你可以在一个函数周围加上任意多的括号,然后在它后面加上()
,这样它就可以正常工作了
类似于
(1 + 2) === 3;
((1) + 2) === 3;
((1 + (2))) === (3);
等等。。。这同样适用于对象/函数
class MyClass { /* ... */ }
const object = {
c: MyClass,
};
let a = new object.c();
console.log(a === new (object).c());
console.log(a === new ((object.c))());
console.log(a === new ((object).c)());
等等
值得注意的是,点
后不能放括号,例如:
let a = new object.(c)();
将引发错误。假设您使用的是node的最新LTS或0.12之后的版本,则“.EventEmitter”部分已被弃用,而不是必需的。所以您可以这样做:var evntEmitter=new(require('events'))();