JavaScript Classes

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

External

Internal

Overview

A JavaScript class is a syntactical superstructure in top of the language's existing prototype-based inheritance, and it does not introduce a new object-oriented inheritance model in JavaScript. A class is a special function, so like in the functions' case, a class syntax has two components: declarations and expressions.

Class Hoisting

An important difference between function declaration and class declaration is that function declaration and hoisted, while the class declarations are not: you first need to declare the class and then access it, otherwise a ReferenceError is thrown.

Declaration

Use the class keyword:

class Simplest {
  constructor(content) {
    this.content = content;
  }
}

Class Expression

A class expression is another way to define a class, and it can be named or unnamed. The name given to a named expression is local to the class' body. It can be retrieved through the class' and not an instance's name property.

let Simplest = class {
  constructor(content) {
    this.content = content;
  }
}
console.log(Rectangle.name);

Syntax Elements

Body

The body of a class is contained within curly braces {...}. It contains class members: constructor and methods.

Constructor

Prototype Methods

Static Methods