Completion requirements
Examples
A simple class declaration
In the following example, we first define a class named Rectangle
, then
extend it to create a class named FilledRectangle
.
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 Rectangle { constructor(height, width) { this.name = 'Rectangle'; this.height = height; this.width = width; } } class FilledRectangle extends Rectangle { constructor(height, width, color) { super(height, width); this.name = 'Filled rectangle'; this.color = color; } }
Attempting to declare a class twice
Re-declaring a class using the class declaration throws a SyntaxError
.
class Foo {}; class Foo {}; // Uncaught SyntaxError: Identifier 'Foo' has already been declared
The same error is thrown when a class has been defined before using the class expression.
let Foo = class {}; class Foo {}; // Uncaught SyntaxError: Identifier 'Foo' has already been declared