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.
Zurück zu unserem Thema: Ich werde GTA die Rolle der übergeordneten Klasse zuweisen und RDR den Platz der untergeordneten Klasse einnehmen.
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
super.addFeature(feature, true) ruft die addFeature-Methode in der GTA-Klasse auf und fügt das Feature dem 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.
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!
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3