Sombreando um conceito especial em JavaScript que torna os métodos pertencentes à classe pai redefinidos na classe filha.
Vamos com dois dos jogos queridinhos do século 21 que são muito fáceis de adivinhar, GTA e Red Dead Redemption, a menos que você não seja fã de bangers de mundo aberto.
Voltando ao nosso tópico, darei ao GTA o papel de Classe Pai e RDR ficará com o lugar de Classe Criança.
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) chama o método addFeature na classe GTA, adicionando o recurso ao objeto openWorld.
O método addFeature em RDR retorna verdadeiro, mas também garante que ROLE_PLAYER seja adicionado ao objeto openWorld.
Parece que ROLE_PLAYER acabou de entrar no mundo aberto e selvagem com o valor true. Espero que eles estejam prontos para os bugs que encontrarão – afinal, é um jogo de mundo aberto!
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3