Variáveis declaradas como "const" não seriam variáveis imutáveis? Se sim isso não deixaria mais simples o encapsulamento do objeto?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Variáveis declaradas como "const" não seriam variáveis imutáveis? Se sim isso não deixaria mais simples o encapsulamento do objeto?
Olá meu aluno!
O const não deixa uma variável imutável, o que const faz é não permitir uma nova atribuição com o operador =.
Faça um teste no seu console do navegador:
const dia = new Date();
console.log(dia.getDate());
dia.setDate(1);
console.log(dia.getDate()); // será 1
Os métodos do objeto mudam seu estado, porque esses não foram definidos com const, e nem poderiam, porque precisam mudar.
Agora, se eu tentar usar o sinal de atribuição:
dia = new Date() // boom! Erro, não pode haver uma nova atribuição.
Sucesso e bom estudo.
Sim, eu entendo! O que quis dizer foi nas variáveis do meu objeto (não sei dizer se estou me expressando bem).
Por exemplo:
class Pessoa {
constructor(fala){
const this.fala = fala;
}
}
Poderia usar isso? Ou fazer algo parecido?
Não pode usar isso. E mesmo que se pudesse você está recebendo um parâmetro que deseja repassar no constructor o que não faz sentido nenhum se o atributo fosse const.
As perguntas que você fez são respondidas facilmente com um teste que demonstrará que não funcionariam. Faça um teste, é um bom exercício experimentar.
Sim, bobeira minha! Obrigado!
Não foi bobeira não. Pode ser que você já tenha visto outra linguagem que faz isso. Mas JavaScript não faz.
Sucesso e bom estudo.
Obrigado! Realmente, uso angular com typescript e da pra fazer algo parecido, além é claro de encapsular usando private. Mas gostaria muito de entender melhor javascript, por isso estou fazendo o curso! Como fiquei com dúvida achei melhor perguntar hehe