Apr 10th 2014How to make an object inherit from a class in JavaScript

In node.js, it's really easy to make on "class" inherit from another "class". Many node-modules make use of util.inherits for this.

Classical inheritance with JavaScript (class-class)

If you have two "classes", you can make one inherit from another by doing the following:

var util = require('util');
var EventEmitter = require('events').EventEmitter;

var Person = function(name) {
  EventEmitter.call(this);
  this.name = name;
};

util.inherits(Person, EventEmitter);

Now every Person object is also an EventEmitter.

Class-object inheritance in JavaScript

In JavaScript it's not uncommon to work without class-like objects, but you might want your object to inherit functionality from a class-like object. It works very similarly:

var EventEmitter = require('events').EventEmitter;

var person = {
  name: 'Max'
};

EventEmitter.call(myModule);
Object.assign(myModule, EventEmitter.prototype);