以下内容有什么不同:
new require('events').EventEmitter();和
var events = require('events');
new events.EventEmitter();第一个不起作用,但第二个-起作用。
为什么?
发布于 2013-03-25 20:32:37
请注意这些行之间的区别:
new foo().bar()
..。还有..。
new foo.bar()
在第一种情况下,new操作符将改变foo()函数的处理方式:它将被用作构造函数( this指向其原型副本等)。
但是在第二种情况下,new运算符不能应用于foo,因为后者没有被调用:而是调用了它的bar属性。当然,这里的new意味着使用foo.bar作为构造函数。
这正是在您的示例中发生的情况:第一种情况尝试将new应用于require函数调用,而不是%require_result%.EventEmitter函数调用。
https://stackoverflow.com/questions/15614749
复制相似问题