extends
The extends
keyword is used in class declarations or
class expressions to
create a class that is a child of another class.
Syntax
class ChildClass extends ParentClass { /* ... */ }
Description
The extends
keyword can be used to subclass custom classes as well as
built-in objects.
Examples
Using extends
The first example creates a class called Square
from a class called
Polygon
. This example is extracted from this live demo (source).
class Square extends Polygon {
constructor(length) {
// Here, it calls the parent class' constructor with lengths
// provided for the Polygon's width and height
super(length, length);
// Note: In derived classes, super() must be called before you
// can use 'this'. Leaving this out will cause a reference error.
this.name = 'Square';
}
get area() {
return this.height * this.width;
}
}
Using extends with built-in objects
This example extends the built-in Date
object.
This example is extracted from this live demo
(source).
class myDate extends Date {
getFormattedDate() {
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
return this.getDate() + '-' + months[this.getMonth()] + '-' + this.getFullYear();
}
}
Specifications
Specification |
---|
ECMAScript Language Specification # sec-class-definitions |
Browser compatibility
BCD tables only load in the browser