ExpertiDict

JavaScript · Intermediário · Português · Técnico

campo privado

/ˈkɐ̃mpu pɾiˈvadu/substantivo

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); // 5

Exemplos

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

Veja também

Todos os termos de JavaScript