Classes - een klasse apart

Het 'this' keywoord en functies

Net als bij het aanmaken van een object, kan een class het this keywoord/ verwijzing gebruiken. Net als bij een object verwijst this naar iets van de class (of object) zelf.

class Player {
  constructor(name, level) {
    this.name = name;
    this.level = level;
    this.lives = 3;
    this.points = 0;
  }
  addPoints(points) {
    this.points += points;
  }
  addCoin() {
    this.coins++;
  }
  changeLives(lives) {
    this.lives += lives;
  }
}
Inbovenstaande code kan je dus in jouw object de functie addPoints aanroepen, met een argument, om het punten aantal van de speler te vergroten.

Daarnaast hebben we een functie addCoin die het aantal munten met 1 vergroot.

playerOne.addPoints(100); //Dit geeft de speler 100 punten extra
playerOne.addCoin; //Dit geeft de speler 1 munt extra

Functies met if-statements

Bij een spel als Super Mario Bros. krijg je voor elke 100 muntjes een nieuw leven. Dan moet je daar natuurlijk een if-statement voor uitvoeren dat als de module van de muntjes met 100, 0 is, dat je dan een leven erbij krijgt. We gaan de code uitbreiden:
class Player {
  constructor(name, level) {
    this.name = name;
    this.level = level;
    this.lives = 3;
    this.coins = 0;
    this.points = 0;
  }

  addPoints(points) {
    this.points += points;
  }
  addCoin() {
    this.coins++;
    if ((this.coins % 100) === 0) {
      this.changeLives(1); //tel een leven erbij op
      this.coins = 0; //Reset het aantal muntjes naar 0
    }
  }
  changeLives(lives) {
    this.lives += lives;
  }
}
Als je nu playerOne.addCoin(); 100 keer uit zou voeren, dan heeft de speler weer 0 muntjes, maar wel een extra leven erbij gekregen!

Jouw JavaScript

Op de MBO-SD Fiddle site kan je meer oefenen met deze stof.

Klik hier voor de MBO-SD Fiddle site