What is the difference between the resulting objects in the following examples:
var EventEmitter = require('events').EventEmitter;
var oProto = Object.create(EventEmitter.prototype);
var oProto2 = Object.create(oProto);
var oConstr = Object.create(new EventEmitter);
var oConstr2 = Object.create(oConstr);
I suppose oConstr
and oConstr2
will have any properties set in the EventEmitter
constructor, but is there any other meaningful difference?
Your code is misleading. you use the term
oConstr
when it's not a constructor function.The only difference is that
temp
is not just an object that inherits fromEventEmitter
it also has own properties augmented from the call toEventEmitter.constructor.call(temp)
.I'd personally recommend you use
EventEmitter.prototype
and ignorenew EventEmitter
Personally I don't ever inherit from
EventEmitter
, I mix it in