Over classes in JavaScript

In veel programmeertalen kunnen afgeschermde stukken code worden gemaakt. Zo'n stuk code heet class. Classes zijn onderdeel van complete programma's. Alleen subroutines, functions en variabelen die expliciet beschikbaar zijn gemaakt voor de software, kunnen door die software worden gebruikt. Het voordeel van classes is dat code eenvoudig kan worden hergebruikt.
Programmeertalen die dit mechanisme hebben zijn o.a. Visual Basic, C# en Java.

Ook JavaScript heeft een dergelijk class-mechanisme, alleen heet het daar module.
JavaScript kent ook een class. Dat is geen verzameling subroutines, functions en variabelen, maar een sjabloon (template) voor het maken van objecten.

De code van een class ziet er als volgt uit:
class ClassName {
  constructor(param_1,param_2,param_3) {
    this.eigenschap_1 = param_1;
    this.eigenschap_2 = param_2;
    this.eigenschap_3 = param_3;
    this.eigenschap_4 = "";
  }
  method_1(par_1,par_2) {
    const abc = par_1 + par_2**2;
    return abc;
  }
  method_2(par_1,par_2) {
    const abc = par_1 + par_2**2;
    this.eigenschap_1 = abc;
  }
}

Het is mogelijk om een class uit te breiden met nieuwe eigenschappen en methodes. Doe je door het keyword extends toe te voegen aan de declaratie van class.
 
const abcd = new ClassId extends ClassName;
 
De declaratie van ClassName is hetzelfde als hierboven. De declaratie ClassId is:
 
class ClassId {
  constructor(param_1,param_1a) {
    super(param_1);
    this.eigenschap_4 = param_1a;
  }
  method_1a(par_1a) {
    const abc = par_1a**2;
    return abc;
  }
}

 
De methode super() verwijst naar de parent van de class. Door super() uit te voeren in de constructor worden eigenschappen en methodes van de parent beschikbaar gemaakt.

Het is mogelijk om een method op te sluiten binnen zijn eigen class. Dat doe je door een method te declareren met het keyword static.
 
Stel: in de declaratie van className vervang je de regel
method_2(par_1,par_2) {
door:
static method_2(par_1,par_2) {
 
method_2 kan nu alleen nog worden aangeroepen binnen ClassName, niet meer vanuit ClassID en ook niet door referentie "van buitenaf" aan objecten die met class ClassId zijn gemaakt.

Bron: o.a. w3schools.com.

 
terug

html-810; Laatste wijziging: 19 augustus 2025