1
resposta

[Dúvida] Let e Const dentro de classe

Fui trocar a classe sacar por uma Arrow Function só para treinar e ver o resultado, como ela é um tipo de função anônima (sem nome) fui atribuir a Arrow Function para dentro de um variável, quando percebi que dentro da classe o tipo de "let" e "const" estava dando como erro, ou seja, dentro de uma classe eu não posso declarar uma variável do tipo let ou const de forma explícita?

1 resposta

Opa, tudo joia ?

Se você gostar da resposta marca como resolvida.

Então para classes em javascript você não usa let ou const para fazer as declarações, apesar da classe estar dentro de um bloco { } , ela é considerada um bloco de código comum. Numa classe temos as declarações dos membros da classe, que podem ser métodos ou as suas propriedades que vão descrever o comportamento e o estado daquela classe. Para conseguir o efeito que você quer , você teria que produzir uma propriedade de instância que seja estática para armazenar os valores associados aquela classe. Abaixo tentei mostrar um exemplo para você :

class Exemplo {
// no constructor() atribuímos a instância propriedadeDeInstancia o valor "valor"
  constructor() {
    this.propriedadeDeInstancia = 'valor';
  }
  // com a declaração static , a propriedadeEstatica vai receber o valor "valor"
  static propriedadeEstatica = 'valor';

  // aqui tem uma arrow function to tipo static que pega o valor estatico da propriedadeEstatica
  static pegarValorEstatico = () => Exemplo.propriedadeEstatica;
}