Olá, Daniel! Tudo bem?
A cerquilha (#
) é usada para denotar propriedades privadas numa classe em JavaScript. Quando você vê this.#nome
, isso significa que a propriedade nome
é privada e só pode ser acessada diretamente dentro da própria classe.
No seu exemplo, o método get nome()
está acessando essa propriedade privada e retornando seu valor. Isso é comum quando queremos permitir leitura de uma propriedade privada de fora da classe, mas mantendo o controle sobre como essa propriedade é exposta.
get nome() {
return this.#nome;
}
Por outro lado, quando você usa this.nome
em métodos como exibirInfos()
, você não está acessando diretamente a propriedade privada, mas sim o método getter get nome()
. Isso é uma prática de encapsulamento, onde o acesso à propriedade privada é controlado pelo método getter, que pode incluir lógicas adicionais, como validações ou transformações dos dados antes de retorná-los.
exibirInfos() {
return `${this.nome}, ${this.email}, ${this.nascimento}, ${this.role}, ${this.ativo}`
}
Portanto, embora this.#nome
e this.nome
possam parecer que retornam o mesmo, o uso de this.nome
é uma forma de acessar a propriedade privada de maneira controlada através do getter. Isso é especialmente útil quando você quer implementar regras ou lógicas específicas que devem ser aplicadas toda vez que a propriedade é acessada.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.