JavaScript Class super
Keyword
Example
Example
The following example creates a class "tutorialpro" and uses super
to call the constructor of the parent class "Site":
Definition and Usage
The super
keyword is used to call functions on an object's parent.
When used in a constructor, the super
keyword appears alone and must be used before the this
keyword is used. The super
keyword can also be used to call functions on the parent object.
Syntax
super(arguments); // Calls the parent constructor
super.parentMethod(arguments); // Calls the parent method
Technical Details
| JavaScript Version: | ECMAScript 2015 (ES6) |
Browser Support
super
is an ECMAScript6 (ES6) feature.
ES6 (JavaScript 2015) is supported by all major browsers.
Chrome | Edge | Firefox | Safari | Opera |
Yes | Yes | Yes | Yes | Yes |
Internet Explorer 11 or older versions do not support the super
keyword.
More Examples
Using super
within a class:
Example
class Polygon {
constructor(height, width) {
this.name = 'Rectangle';
this.height = height;
this.width = width;
}
sayName() {
return 'Hi, I am a ', this.name + '.';
}
get area() {
return this.height * this.width;
}
set area(value) {
this._area = value;
}
}
class Square extends Polygon {
constructor(length) {
// Here, it calls the parent class's constructor,
// as the height, width of Polygon
super(length, length);
this.height; // Needs to be placed after super, otherwise it causes a ReferenceError
// Note: In derived classes, `super()` must be called before you
// can use `this`. Leaving this out will cause a reference error.
this.name = 'Square';
}
}
Using super
to call a parent class's static method:
Example
class Rectangle {
constructor() {}
static logNbSides() {
return 'I have 4 sides';
}
}
class Square extends Rectangle {
constructor() {}
static logDescription() {
return super.logNbSides() + ' which are all equal';
}
}
Square.logDescription(); // 'I have 4 sides which are all equal'