javascript - Setting Object.prototype.__proto__ instead of just Object.prototype? -


i looking @ article regarding node.js events module:

http://www.sitepoint.com/nodejs-events-and-eventemitter/

and in there code:

door.prototype.__proto__ = events.eventemitter.prototype; 

which supposedly sets prototype of door object prototype of event.eventemitter.

i believe know difference between prototype , proto code confuses me. questions whether instead of using:

door.prototype.__proto__ = events.eventemitter.prototype; 

the author of article did not use line of code:

door.prototype= events.eventemitter.prototype; 

this code

door.prototype.__proto__ = events.eventemitter.prototype 

makes door.prototype inherit events.eventemitter.prototype.

so prototype chain like

doorinstance -> door.prototype -> events.eventemitter.prototype 

this approach similar to

door.prototype = object.create(events.eventemitter.prototype) 

the difference modifying [[prototype]] not create new object, has great negative impact on performance.

instead, code

door.prototype = events.eventemitter.prototype 

makes door instances inherit directly events.eventemitter.prototype.

that is, won't able add specific methods in door.prototype without polluting events.eventemitter.prototype.


Comments