以下有什么区别:
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/