"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Sombreamento em JavaScript

Sombreamento em JavaScript

Publicado em 2024-11-08
Navegar:744

Visão geral

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.

Shadowing in JavaScript

Voltando ao nosso tópico, darei ao GTA o papel de Classe Pai e RDR ficará com o lugar de Classe Criança.

Código

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

Explicação:

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.

Shadowing in JavaScript

Nota de encerramento

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!

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/alimalim77/shadowing-in-javascript-12ci?1 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

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