Javascript

Creating abstract class in Javascript

An abstract class is a ‘class’ that is used just for inheritance. We should not be creating objects directly from abstract classes.

Here is the code:

function Car(name) {
  if(this.constructor === Car) {
    throw 'Cannot instantiate abstract class';
  }
  this.name = name;
}

function i12() {
  Car.call(this, 'i12');
}

The key here is the ‘constructor’ property.

Now, if I execute the following:

c = new i12(); 
console.log(c.name); // "i12"

But trying to instantiate the function ‘Car’ directly will result in an exception.

c = new Car(); // Uncaught Cannot instantiate abstract class
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s