Skip to content
Related Articles
Get the best out of our app
GFG App
Open App
geeksforgeeks
Browser
Continue

Related Articles

How to call the constructor of a parent class in JavaScript ?

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

In this article, we learn how to call the constructor of a parent class. Before the beginning of this article, we should have a basic knowledge of javascript and some basic concepts of inheritance in javascript.

  • Constructor: Constructors create instances of a class, which are commonly referred to as objects. The new keyword in JavaScript causes a constructor to be called when an object is declared. A constructor creates an object and sets any object properties if they exist.
  • Inheritance in javascript: The ability of an object to access the properties and methods of another object is called inheritance. Objects can inherit properties and methods from other objects. JavaScript inherits properties through prototypes, and this form of inheritance is often referred to as prototypal inheritance.
  • Super keyword in javascript: By executing the super() method in the constructor method, we invoke the constructor method of the parent and get access to the parent’s properties and methods. we can only use the super keyword in the child class of a parent class.

Now let’s understand through examples How to call the constructor of a parent class.

Example: In this example, we are going to take two classes one is for the parent class and another is for the child class for inheriting the properties and methods of the parent class so for that we should have to use extends keyword to inherit the child class from the parent class. Then inside the child class constructor, we have to call the parent class constructor otherwise the compiler will throw an error and tell you to mention or call the constructor within the child class constructor method before accessing this.

JavaScript




class Geeks {
    constructor(num1) {
        this.num1 = num1;
    }
    fun() {
    console.log("Parent class method call");
    }
}
class Myclass extends Geeks {
    constructor(num1, num2) {
 
        // Calling parent class constructor
        super(num1);
        this.num2 = num2;
    }
    fun() {
        super.fun();
        console.log("child class method call");
    }
}
let obj = new Myclass(1, 2);
obj.fun();


Output:

Parent class method call
child class method call

Example 2: This cannot be used in a child class constructor until super has been called. In ES6, constructors for subclasses are required to call super, or they must return some object in place of the one that was never initialized. In this example, Geeks class is the parent class of MyClass and when an object is created of type MyClass first it calls the MyClass constructor inside MyClass constructor we have to call the parent class constructor before accessing “this” (own object). So it first called the parent class(Geeks class)constructor before it access the object of its own.

JavaScript




class Geeks {
    constructor(num) {
        this.num = num;
        console.log("inside Parent Class constructor");
    }
}
 
class MyClass extends Geeks {
    constructor(num1, num2) {
        super(num1);
        this.num2 = num2;
        console.log("inside Child class Constructor");
    }
}
let obj = new MyClass(1, 2);


Output:

inside Parent Class constructor
inside Child class Constructor

My Personal Notes arrow_drop_up
Last Updated : 05 Jan, 2023
Like Article
Save Article
Similar Reads
Related Tutorials