Stats

1570 Contributors: 29
2017-05-30
Licensed under: CC-BY-SA

Not affiliated with Stack Overflow
Rip Tutorial: info@zzzprojects.com

Download eBook

Classes

Download javascript eBook

Syntax

  • class Foo {}
  • class Foo extends Bar {}
  • class Foo { constructor() {} }
  • class Foo { myMethod() {} }
  • class Foo { get myProperty() {} }
  • class Foo { set myProperty(newValue) {} }
  • class Foo { static myStaticMethod() {} }
  • class Foo { static get myStaticProperty() {} }
  • const Foo = class Foo {};
  • const Foo = class {};

Remarks

class support was only added to JavaScript as part of the 2015 standard.

Javascript classes are syntactical sugar over JavaScript's already existing prototype-based inheritance. This new syntax does not introduce a new object-oriented inheritance model to JavaScript, just a simpler way to deal with objects and inheritance. A class declaration is essentially a shorthand for manually defining a constructor function and adding properties to the prototype of the constructor. An important difference is that functions can be called directly (without the new keyword), whereas a class called directly will throw an exception.

class someClass {
    constructor () {}
    someMethod () {}
}
 
console.log(typeof someClass);               
console.log(someClass);
console.log(someClass === someClass.prototype.constructor);                         
console.log(someClass.prototype.someMethod);
 
// Output:
// function
// function someClass() { "use strict"; }
// true
// function () { "use strict"; }

If you are using an earlier version of JavaScript you will need a transpiler like or in order to compile the code into a version that the target platform will be able to understand.

Related Examples