Shadowing dans un concept spécial en JavaScript qui rend les méthodes appartenant à la classe parent redéfinissables dans la classe enfant.
Partons avec deux des jeux chouchous du 21e siècle et assez faciles à deviner, GTA et Red Dead Redemption, à moins que vous n'êtes pas fan des bangers du monde ouvert.
Revenant à notre sujet, je vais donner à GTA le rôle de classe parent et à RDR la place de classe enfant.
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) appelle la méthode addFeature dans la classe GTA, ajoutant la fonctionnalité à l'objet openWorld.
La méthode addFeature dans RDR renvoie vrai, mais elle garantit également que ROLE_PLAYER est ajouté à l'objet openWorld.
On dirait que ROLE_PLAYER vient de s'aventurer dans le monde ouvert et sauvage avec une valeur de vrai. J'espère qu'ils sont prêts à affronter les bugs qu'ils rencontreront : c'est un jeu en monde ouvert, après tout !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!