Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

atributos privados em classe

Durante a aula 2 no segundo vídeo, o Ricardo Bugan comenta sobre como ainda não foram implementados atributos privados no JS, porém as aulas foram gravadas em 2019, gostaria de saber se e como essa implementação foi feita.

2 respostas
solução!

Oi Renato, tudo bem?

Ainda é uma proposta que está no estágio 3, você pode ler mais sobre ela aqui. Ainda se discute bastante a implementação, porém, no momento, ainda continua com o símbolo de cerquilha (#) na frente da variável para indicar que ela é um atributo privado.

Essa funcionalidade está disponível em alguns navegadores e no NodeJS (versão 12+), portanto você pode testar, veja abaixo o código:

class Classe {
    a = 1; // 'a' é público
    #b = 2; // #b é privado
    incrementa() {
      this.#b++;
    }
}

const number = new Classe();
number.incrementa();
number.#b = 0; // Erro!

Quando tentamos alterar o valor de #b para 0, fora da classe (é um atributo privado), o erro que encontramos é esse aqui:

Erro com atributo privado

Significando que não podemos alterar um atributo privado fora da classe.

Espero ter ajudado, bons estudos =)

Muito obrigado Geovanna!