The class declaration creates a new class with a given name using prototype-based inheritance.
You can also define a class using a class expression.
class name [extends] { // class body }
Just like with class expressions, the class body of a class declaration is executed in strict mode.
Class declarations are not hoisted (unlike function declarations).
In the following example, we first define a class named Polygon, then extend it to create a class named Square. Note that super(), used in the constructor, can only be used in constructors and must be called before the this keyword can be used.
class Polygon { constructor(height, width) { this.name = 'Polygon'; this.height = height; this.width = width; } } class Square extends Polygon { constructor(length) { super(length, length); this.name = 'Square'; } }
Created by Mozilla Contributors, license: CC-BY-SA 2.5