JavaScript · Intermediário · Português · Técnico
campo privado
Campo ou método de classe cujo nome começa com #, acessível somente dentro do corpo da classe. Diferente da convenção do underline, a privacidade é garantida pela linguagem.
Onde usar
Usado para esconder estado interno e proteger invariantes. Em code review, aparece quando o antigo _campo vira #campo.
Em código
class Conta {
#saldo = 0; // c.#saldo fora: SyntaxError
depositar(v) { this.#saldo += v; }
get saldo() { return this.#saldo; }
}
const c = new Conta();
c.depositar(5);
console.log(c.saldo); // 5Exemplos
Troquei o underline por um campo privado de verdade.
Um campo privado não pode ser lido nem pela subclasse.
Cuidado
Tentar ler #campo de fora da classe ou de uma subclasse, o que é erro de sintaxe; exponha um método público.
Sinônimos
private field