Heim  >  Artikel  >  Web-Frontend  >  Shadowing in JavaScript

Shadowing in JavaScript

WBOY
WBOYOriginal
2024-08-29 13:40:34315Durchsuche

Überblick

Shadowing in einem speziellen Konzept in JavaScript, das die zur übergeordneten Klasse gehörenden Methoden in der untergeordneten Klasse neu definierbar macht.

Lassen Sie uns mit zwei der Lieblingsspiele des 21. Jahrhunderts beginnen, die ziemlich leicht zu erraten sind: GTA und Red Dead Redemption, es sei denn, Sie sind kein Fan von Open-World-Knallern.

Shadowing in JavaScript

Zurück zu unserem Thema: Ich werde GTA die Rolle der übergeordneten Klasse zuweisen und RDR den Platz der untergeordneten Klasse einnehmen.

Code

class GTA {
  constructor() {
    this.openWorld = {};
  }

  addFeature(feature, value) {
    this.openWorld[feature] = value;
    return this.openWorld[feature];
  }
}

class RDR extends GTA {
  addFeature(feature) {
    super.addFeature(feature, true);  // Calls the parent class' method and adds the feature
    return true;
  }
}

var role = new RDR();
console.log(role.addFeature('ROLE_PLAYER'));  // This will return true
console.log(role.openWorld);  // This will now have 'ROLE_PLAYER' added to it with value true

Erläuterung:

super.addFeature(feature, true) ruft die addFeature-Methode in der GTA-Klasse auf und fügt das Feature zum openWorld-Objekt hinzu.

Die addFeature-Methode in RDR gibt true zurück, stellt aber auch sicher, dass ROLE_PLAYER zum openWorld-Objekt hinzugefügt wird.

Shadowing in JavaScript

Schlussbemerkung

Sieht so aus, als wäre ROLE_PLAYER gerade mit dem Wert „true“ in die wilde offene Welt geritten. Ich hoffe, sie sind bereit für die Fehler, denen sie begegnen werden – es ist schließlich ein Open-World-Spiel!

Das obige ist der detaillierte Inhalt vonShadowing in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn