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